<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Interactive BOM for KiCAD</title>
  <style type="text/css">
:root {
  --pcb-edge-color: black;
  --pad-color: #878787;
  --pad-hole-color: #CCCCCC;
  --pad-color-highlight: #D04040;
  --pin1-outline-color: #ffb629;
  --pin1-outline-color-highlight: #b4ff03;
  --silkscreen-edge-color: #aa4;
  --silkscreen-polygon-color: #4aa;
  --silkscreen-text-color: #4aa;
  --fabrication-edge-color: #907651;
  --fabrication-polygon-color: #907651;
  --fabrication-text-color: #a27c24;
  --track-color: #def5f1;
  --track-color-highlight: #D04040;
  --zone-color: #def5f1;
  --zone-color-highlight: #d0404080;
}

html, body {
  margin: 0px;
  height: 100%;
  font-family: Verdana, sans-serif;
}

.dark.topmostdiv {
  --pcb-edge-color: #eee;
  --pad-color: #808080;
  --pin1-outline-color: #ffa800;
  --pin1-outline-color-highlight: #ccff00;
  --track-color: #42524f;
  --zone-color: #42524f;
  background-color: #252c30;
  color: #eee;
}

button {
  background-color: #eee;
  border: 1px solid #888;
  color: black;
  height: 44px;
  width: 44px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 14px;
  font-weight: bolder;
}

.dark button {
  /* This will be inverted */
  background-color: #c3b7b5;
}

button.depressed {
  background-color: #0a0;
  color: white;
}

.dark button.depressed {
  /* This will be inverted */
  background-color: #b3b;
}

button:focus {
  outline: 0;
}

button#tb-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#lr-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#bom-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-grouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-ungrouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-netlist-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
}

button#copy {
  background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
  background-position: 6px 6px;
  background-repeat: no-repeat;
  background-size: 26px 26px;
  border-radius: 6px;
  height: 40px;
  width: 40px;
  margin: 10px 5px;
}

button#copy:active {
    box-shadow: inset 0px 0px 5px #6c6c6c;
}

textarea.clipboard-temp {
  position: fixed;
  top: 0;
  left: 0;
  width: 2em;
  height: 2em;
  padding: 0;
  border: None;
  outline: None;
  box-shadow: None;
  background: transparent;
}

.left-most-button {
  border-right: 0;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.middle-button {
  border-right: 0;
}

.right-most-button {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.button-container {
  font-size: 0;
  margin: 10px 10px 10px 0px;
}

.dark .button-container {
  filter: invert(1);
}

.button-container button {
  background-size: 32px 32px;
  background-position: 5px 5px;
  background-repeat: no-repeat;
}

@media print {
  .hideonprint {
    display: none;
  }
}

canvas {
  cursor: crosshair;
}

canvas:active {
  cursor: grabbing;
}

.fileinfo {
  width: 100%;
  max-width: 1000px;
  border: none;
  padding: 5px;
}

.fileinfo .title {
  font-size: 20pt;
  font-weight: bold;
}

.fileinfo td {
  overflow: hidden;
  white-space: nowrap;
  max-width: 1px;
  width: 50%;
  text-overflow: ellipsis;
}

.bom {
  border-collapse: collapse;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 10pt;
  table-layout: fixed;
  width: 100%;
  margin-top: 1px;
}

.bom th, .bom td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

.dark .bom th, .dark .bom td {
  border: 1px solid #777;
}

.bom th {
  background-color: #CCCCCC;
  background-clip: padding-box;
}

.dark .bom th {
  background-color: #3b4749;
}

.bom tr.highlighted:nth-child(n) {
  background-color: #cfc;
}

.dark .bom tr.highlighted:nth-child(n) {
  background-color: #226022;
}

.bom tr:nth-child(even) {
  background-color: #f2f2f2;
}

.dark .bom tr:nth-child(even) {
  background-color: #313b40;
}

.bom tr.checked {
  color: #aaa;
}

.dark .bom tr.checked {
  color: #666;
}

.bom tr {
  transition: background-color 0.2s;
}

.bom .numCol {
  width: 25px;
}

.bom .Description {
  width: 10%;
}

.bom .Part {
  width: 10%;
}

.bom .Value {
  width: 15%;
}

.bom .Quantity {
  width: 65px;
}

.bom th .sortmark {
  position: absolute;
  right: 1px;
  top: 1px;
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent #221 transparent;
  transform-origin: 50% 85%;
  transition: opacity 0.2s, transform 0.4s;
}

.dark .bom th .sortmark {
  filter: invert(1);
}

.bom th .sortmark.none {
  opacity: 0;
}

.bom th .sortmark.desc {
  transform: rotate(180deg);
}

.bom th:hover .sortmark.none {
  opacity: 0.5;
}

.bom .bom-checkbox {
  width: 30px;
  position: relative;
  user-select: none;
  -moz-user-select: none;
}

.bom .bom-checkbox:before {
  content: "";
  position: absolute;
  border-width: 15px;
  border-style: solid;
  border-color: #51829f transparent transparent transparent;
  visibility: hidden;
  top: -15px;
}

.bom .bom-checkbox:after {
  content: "Double click to set/unset all";
  position: absolute;
  color: white;
  top: -35px;
  left: -26px;
  background: #51829f;
  padding: 5px 15px;
  border-radius: 8px;
  white-space: nowrap;
  visibility: hidden;
}

.bom .bom-checkbox:hover:before, .bom .bom-checkbox:hover:after {
  visibility: visible;
  transition: visibility 0.2s linear 1s;
}

.split {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow-y: auto;
  overflow-x: hidden;
  background-color: inherit;
}

.split.split-horizontal, .gutter.gutter-horizontal {
  height: 100%;
  float: left;
}

.gutter {
  background-color: #ddd;
  background-repeat: no-repeat;
  background-position: 50%;
  transition: background-color 0.3s;
}

.dark .gutter {
  background-color: #777;
}

.gutter.gutter-horizontal {
  background-image: url('');
  cursor: ew-resize;
  width: 5px;
}

.gutter.gutter-vertical {
  background-image: url('');
  cursor: ns-resize;
  height: 5px;
}

.searchbox {
  float: left;
  height: 40px;
  margin: 10px 5px;
  padding: 12px 32px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 18px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 6px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  background-image: url('');
  background-position: 10px 10px;
  background-repeat: no-repeat;
}

.dark .searchbox {
  background-color: #111;
  color: #eee;
}

.searchbox::placeholder {
  color: #ccc;
}

.dark .searchbox::placeholder {
  color: #666;
}

.filter {
  width: calc(60% - 64px);
}

.reflookup {
  width: calc(40% - 10px);
}

input[type=text]:focus {
  background-color: white;
  border: 1px solid #333;
}

.dark input[type=text]:focus {
  background-color: #333;
  border: 1px solid #ccc;
}

mark.highlight {
  background-color: #5050ff;
  color: #fff;
  padding: 2px;
  border-radius: 6px;
}

.dark mark.highlight {
  background-color: #76a6da;
  color: #111;
}

.menubtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
}

.statsbtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.iobtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.dark .statsbtn, .dark .savebtn, .dark .menubtn, .dark .iobtn {
  filter: invert(1);
}

.flexbox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.savebtn {
  background-color: #d6d6d6;
  width: auto;
  height: 30px;
  flex-grow: 1;
  margin: 5px;
  border-radius: 4px;
}

.savebtn:active {
  background-color: #0a0;
  color: white;
}

.dark .savebtn:active {
  /* This will be inverted */
  background-color: #b3b;
}

.stats {
  border-collapse: collapse;
  font-size: 12pt;
  table-layout: fixed;
  width: 100%;
  min-width: 450px;
}

.dark .stats td {
  border: 1px solid #bbb;
}

.stats td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

#checkbox-stats div {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

#checkbox-stats .bar {
  background-color: rgba(28, 251, 0, 0.6);
}

.menu {
  position: relative;
  display: inline-block;
  margin: 10px 10px 10px 0px;
}

.menu-content {
  display: none;
  position: absolute;
  background-color: white;
  right: 0;
  min-width: 300px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 100;
  padding: 8px;
}

.dark .menu-content {
  background-color: #111;
}

.menu:hover .menu-content {
  display: block;
}

.menu:hover .menubtn, .menu:hover .iobtn, .menu:hover .statsbtn {
  background-color: #eee;
}

.menu-label {
  display: inline-block;
  padding: 8px;
  border: 1px solid #ccc;
  border-top: 0;
  width: calc(100% - 18px);
}

.menu-label-top {
  border-top: 1px solid #ccc;
}

.menu-textbox {
  float: left;
  height: 24px;
  margin: 10px 5px;
  padding: 5px 5px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 14px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 4px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  width: calc(100% - 10px);
}

.menu-textbox.invalid, .dark .menu-textbox.invalid {
  color: red;
}

.dark .menu-textbox {
  background-color: #222;
  color: #eee;
}

.radio-container {
  margin: 4px;
}

.topmostdiv {
  width: 100%;
  height: 100%;
  background-color: white;
  transition: background-color 0.3s;
}

#top {
  height: 78px;
  border-bottom: 2px solid black;
}

.dark #top {
  border-bottom: 2px solid #ccc;
}

#dbg {
  display: block;
}

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #aaa;
}

::-webkit-scrollbar-thumb {
  background: #666;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

.slider {
  -webkit-appearance: none;
  width: 100%;
  margin: 3px 0;
  padding: 0;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
  border-radius: 3px;
}

.slider:hover {
  opacity: 1;
}

.slider:focus {
  outline: none;
}

.slider::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  width: 100%;
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
  border: none;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin-top: -4px;
}

.dark .slider::-webkit-slider-thumb {
  background: #3d3;
}

.slider::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
}

.slider::-moz-range-track {
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
}

.dark .slider::-moz-range-thumb {
  background: #3d3;
}

.slider::-ms-track {
  width: 100%;
  height: 8px;
  border-width: 3px 0;
  background: transparent;
  border-color: transparent;
  color: transparent;
  transition: opacity .2s;
}

.slider::-ms-fill-lower {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-fill-upper {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin: 0;
}

.shameless-plug {
  font-size: 0.8em;
  text-align: center;
  display: block;
}

a {
  color: #0278a4;
}

.dark a {
  color: #00b9fd;
}

#frontcanvas, #backcanvas {
    touch-action: none;
}

 
  </style>
  <script type="text/javascript" >
///////////////////////////////////////////////
/*
  Split.js - v1.3.5
  MIT License
  https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});

///////////////////////////////////////////////

///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////

///////////////////////////////////////////////
/*!
 * PEP v0.4.3 | https://github.com/jquery/PEP
 * Copyright jQuery Foundation and other contributors | http://jquery.org/license
 */
! function (a, b) {
  "object" == typeof exports && "undefined" != typeof module ? module.exports = b() : "function" == typeof define && define.amd ? define(b) : a.PointerEventsPolyfill = b()
}(this, function () {
  "use strict";

  function a(a, b) {
    b = b || Object.create(null);
    var c = document.createEvent("Event");
    c.initEvent(a, b.bubbles || !1, b.cancelable || !1);
    for (var d, e = 2; e < m.length; e++) d = m[e], c[d] = b[d] || n[e];
    c.buttons = b.buttons || 0;
    var f = 0;
    return f = b.pressure && c.buttons ? b.pressure : c.buttons ? .5 : 0, c.x = c.clientX, c.y = c.clientY, c.pointerId = b.pointerId || 0, c.width = b.width || 0, c.height = b.height || 0, c.pressure = f, c.tiltX = b.tiltX || 0, c.tiltY = b.tiltY || 0, c.twist = b.twist || 0, c.tangentialPressure = b.tangentialPressure || 0, c.pointerType = b.pointerType || "", c.hwTimestamp = b.hwTimestamp || 0, c.isPrimary = b.isPrimary || !1, c
  }

  function b() {
    this.array = [], this.size = 0
  }

  function c(a, b, c, d) {
    this.addCallback = a.bind(d), this.removeCallback = b.bind(d), this.changedCallback = c.bind(d), A && (this.observer = new A(this.mutationWatcher.bind(this)))
  }

  function d(a) {
    return "body /shadow-deep/ " + e(a)
  }

  function e(a) {
    return '[touch-action="' + a + '"]'
  }

  function f(a) {
    return "{ -ms-touch-action: " + a + "; touch-action: " + a + "; }"
  }

  function g() {
    if (F) {
      D.forEach(function (a) {
        String(a) === a ? (E += e(a) + f(a) + "\n", G && (E += d(a) + f(a) + "\n")) : (E += a.selectors.map(e) + f(a.rule) + "\n", G && (E += a.selectors.map(d) + f(a.rule) + "\n"))
      });
      var a = document.createElement("style");
      a.textContent = E, document.head.appendChild(a)
    }
  }

  function h() {
    if (!window.PointerEvent) {
      if (window.PointerEvent = a, window.navigator.msPointerEnabled) {
        var b = window.navigator.msMaxTouchPoints;
        Object.defineProperty(window.navigator, "maxTouchPoints", {
          value: b,
          enumerable: !0
        }), u.registerSource("ms", _)
      } else Object.defineProperty(window.navigator, "maxTouchPoints", {
        value: 0,
        enumerable: !0
      }), u.registerSource("mouse", N), void 0 !== window.ontouchstart && u.registerSource("touch", V);
      u.register(document)
    }
  }

  function i(a) {
    if (!u.pointermap.has(a)) {
      var b = new Error("InvalidPointerId");
      throw b.name = "InvalidPointerId", b
    }
  }

  function j(a) {
    for (var b = a.parentNode; b && b !== a.ownerDocument;) b = b.parentNode;
    if (!b) {
      var c = new Error("InvalidStateError");
      throw c.name = "InvalidStateError", c
    }
  }

  function k(a) {
    var b = u.pointermap.get(a);
    return 0 !== b.buttons
  }

  function l() {
    window.Element && !Element.prototype.setPointerCapture && Object.defineProperties(Element.prototype, {
      setPointerCapture: {
        value: W
      },
      releasePointerCapture: {
        value: X
      },
      hasPointerCapture: {
        value: Y
      }
    })
  }
  var m = ["bubbles", "cancelable", "view", "detail", "screenX", "screenY", "clientX", "clientY", "ctrlKey", "altKey", "shiftKey", "metaKey", "button", "relatedTarget", "pageX", "pageY"],
    n = [!1, !1, null, null, 0, 0, 0, 0, !1, !1, !1, !1, 0, null, 0, 0],
    o = window.Map && window.Map.prototype.forEach,
    p = o ? Map : b;
  b.prototype = {
    set: function (a, b) {
      return void 0 === b ? this["delete"](a) : (this.has(a) || this.size++, void(this.array[a] = b))
    },
    has: function (a) {
      return void 0 !== this.array[a]
    },
    "delete": function (a) {
      this.has(a) && (delete this.array[a], this.size--)
    },
    get: function (a) {
      return this.array[a]
    },
    clear: function () {
      this.array.length = 0, this.size = 0
    },
    forEach: function (a, b) {
      return this.array.forEach(function (c, d) {
        a.call(b, c, d, this)
      }, this)
    }
  };
  var q = ["bubbles", "cancelable", "view", "detail", "screenX", "screenY", "clientX", "clientY", "ctrlKey", "altKey", "shiftKey", "metaKey", "button", "relatedTarget", "buttons", "pointerId", "width", "height", "pressure", "tiltX", "tiltY", "pointerType", "hwTimestamp", "isPrimary", "type", "target", "currentTarget", "which", "pageX", "pageY", "timeStamp"],
    r = [!1, !1, null, null, 0, 0, 0, 0, !1, !1, !1, !1, 0, null, 0, 0, 0, 0, 0, 0, 0, "", 0, !1, "", null, null, 0, 0, 0, 0],
    s = {
      pointerover: 1,
      pointerout: 1,
      pointerenter: 1,
      pointerleave: 1
    },
    t = "undefined" != typeof SVGElementInstance,
    u = {
      pointermap: new p,
      eventMap: Object.create(null),
      captureInfo: Object.create(null),
      eventSources: Object.create(null),
      eventSourceList: [],
      registerSource: function (a, b) {
        var c = b,
          d = c.events;
        d && (d.forEach(function (a) {
          c[a] && (this.eventMap[a] = c[a].bind(c))
        }, this), this.eventSources[a] = c, this.eventSourceList.push(c))
      },
      register: function (a) {
        for (var b, c = this.eventSourceList.length, d = 0; d < c && (b = this.eventSourceList[d]); d++)
          b.register.call(b, a)
      },
      unregister: function (a) {
        for (var b, c = this.eventSourceList.length, d = 0; d < c && (b = this.eventSourceList[d]); d++)
          b.unregister.call(b, a)
      },
      contains: function (a, b) {
        try {
          return a.contains(b)
        } catch (c) {
          return !1
        }
      },
      down: function (a) {
        a.bubbles = !0, this.fireEvent("pointerdown", a)
      },
      move: function (a) {
        a.bubbles = !0, this.fireEvent("pointermove", a)
      },
      up: function (a) {
        a.bubbles = !0, this.fireEvent("pointerup", a)
      },
      enter: function (a) {
        a.bubbles = !1, this.fireEvent("pointerenter", a)
      },
      leave: function (a) {
        a.bubbles = !1, this.fireEvent("pointerleave", a)
      },
      over: function (a) {
        a.bubbles = !0, this.fireEvent("pointerover", a)
      },
      out: function (a) {
        a.bubbles = !0, this.fireEvent("pointerout", a)
      },
      cancel: function (a) {
        a.bubbles = !0, this.fireEvent("pointercancel", a)
      },
      leaveOut: function (a) {
        this.out(a), this.propagate(a, this.leave, !1)
      },
      enterOver: function (a) {
        this.over(a), this.propagate(a, this.enter, !0)
      },
      eventHandler: function (a) {
        if (!a._handledByPE) {
          var b = a.type,
            c = this.eventMap && this.eventMap[b];
          c && c(a), a._handledByPE = !0
        }
      },
      listen: function (a, b) {
        b.forEach(function (b) {
          this.addEvent(a, b)
        }, this)
      },
      unlisten: function (a, b) {
        b.forEach(function (b) {
          this.removeEvent(a, b)
        }, this)
      },
      addEvent: function (a, b) {
        a.addEventListener(b, this.boundHandler)
      },
      removeEvent: function (a, b) {
        a.removeEventListener(b, this.boundHandler)
      },
      makeEvent: function (b, c) {
        this.captureInfo[c.pointerId] && (c.relatedTarget = null);
        var d = new a(b, c);
        return c.preventDefault && (d.preventDefault = c.preventDefault), d._target = d._target || c.target, d
      },
      fireEvent: function (a, b) {
        var c = this.makeEvent(a, b);
        return this.dispatchEvent(c)
      },
      cloneEvent: function (a) {
        for (var b, c = Object.create(null), d = 0; d < q.length; d++) b = q[d], c[b] = a[b] || r[d], !t || "target" !== b && "relatedTarget" !== b || c[b] instanceof SVGElementInstance && (c[b] = c[b].correspondingUseElement);
        return a.preventDefault && (c.preventDefault = function () {
          a.preventDefault()
        }), c
      },
      getTarget: function (a) {
        var b = this.captureInfo[a.pointerId];
        return b ? a._target !== b && a.type in s ? void 0 : b : a._target
      },
      propagate: function (a, b, c) {
        for (var d = a.target, e = []; d !== document && !d.contains(a.relatedTarget);)
          if (e.push(d), d = d.parentNode, !d) return;
        c && e.reverse(), e.forEach(function (c) {
          a.target = c, b.call(this, a)
        }, this)
      },
      setCapture: function (b, c, d) {
        this.captureInfo[b] && this.releaseCapture(b, d), this.captureInfo[b] = c, this.implicitRelease = this.releaseCapture.bind(this, b, d), document.addEventListener("pointerup", this.implicitRelease), document.addEventListener("pointercancel", this.implicitRelease);
        var e = new a("gotpointercapture");
        e.pointerId = b, e._target = c, d || this.asyncDispatchEvent(e)
      },
      releaseCapture: function (b, c) {
        var d = this.captureInfo[b];
        if (d) {
          this.captureInfo[b] = void 0, document.removeEventListener("pointerup", this.implicitRelease), document.removeEventListener("pointercancel", this.implicitRelease);
          var e = new a("lostpointercapture");
          e.pointerId = b, e._target = d, c || this.asyncDispatchEvent(e)
        }
      },
      dispatchEvent: /*scope.external.dispatchEvent || */ function (a) {
        var b = this.getTarget(a);
        if (b) return b.dispatchEvent(a)
      },
      asyncDispatchEvent: function (a) {
        requestAnimationFrame(this.dispatchEvent.bind(this, a))
      }
    };
  u.boundHandler = u.eventHandler.bind(u);
  var v = {
      shadow: function (a) {
        if (a) return a.shadowRoot || a.webkitShadowRoot
      },
      canTarget: function (a) {
        return a && Boolean(a.elementFromPoint)
      },
      targetingShadow: function (a) {
        var b = this.shadow(a);
        if (this.canTarget(b)) return b
      },
      olderShadow: function (a) {
        var b = a.olderShadowRoot;
        if (!b) {
          var c = a.querySelector("shadow");
          c && (b = c.olderShadowRoot)
        }
        return b
      },
      allShadows: function (a) {
        for (var b = [], c = this.shadow(a); c;) b.push(c), c = this.olderShadow(c);
        return b
      },
      searchRoot: function (a, b, c) {
        if (a) {
          var d, e, f = a.elementFromPoint(b, c);
          for (e = this.targetingShadow(f); e;) {
            if (d = e.elementFromPoint(b, c)) {
              var g = this.targetingShadow(d);
              return this.searchRoot(g, b, c) || d
            }
            e = this.olderShadow(e)
          }
          return f
        }
      },
      owner: function (a) {
        for (var b = a; b.parentNode;) b = b.parentNode;
        return b.nodeType !== Node.DOCUMENT_NODE && b.nodeType !== Node.DOCUMENT_FRAGMENT_NODE && (b = document), b
      },
      findTarget: function (a) {
        var b = a.clientX,
          c = a.clientY,
          d = this.owner(a.target);
        return d.elementFromPoint(b, c) || (d = document), this.searchRoot(d, b, c)
      }
    },
    w = Array.prototype.forEach.call.bind(Array.prototype.forEach),
    x = Array.prototype.map.call.bind(Array.prototype.map),
    y = Array.prototype.slice.call.bind(Array.prototype.slice),
    z = Array.prototype.filter.call.bind(Array.prototype.filter),
    A = window.MutationObserver || window.WebKitMutationObserver,
    B = "[touch-action]",
    C = {
      subtree: !0,
      childList: !0,
      attributes: !0,
      attributeOldValue: !0,
      attributeFilter: ["touch-action"]
    };
  c.prototype = {
    watchSubtree: function (a) {
      //
      this.observer && v.canTarget(a) && this.observer.observe(a, C)
    },
    enableOnSubtree: function (a) {
      this.watchSubtree(a), a === document && "complete" !== document.readyState ? this.installOnLoad() : this.installNewSubtree(a)
    },
    installNewSubtree: function (a) {
      w(this.findElements(a), this.addElement, this)
    },
    findElements: function (a) {
      return a.querySelectorAll ? a.querySelectorAll(B) : []
    },
    removeElement: function (a) {
      this.removeCallback(a)
    },
    addElement: function (a) {
      this.addCallback(a)
    },
    elementChanged: function (a, b) {
      this.changedCallback(a, b)
    },
    concatLists: function (a, b) {
      return a.concat(y(b))
    },
    installOnLoad: function () {
      document.addEventListener("readystatechange", function () {
        "complete" === document.readyState && this.installNewSubtree(document)
      }.bind(this))
    },
    isElement: function (a) {
      return a.nodeType === Node.ELEMENT_NODE
    },
    flattenMutationTree: function (a) {
      var b = x(a, this.findElements, this);
      return b.push(z(a, this.isElement)), b.reduce(this.concatLists, [])
    },
    mutationWatcher: function (a) {
      a.forEach(this.mutationHandler, this)
    },
    mutationHandler: function (a) {
      if ("childList" === a.type) {
        var b = this.flattenMutationTree(a.addedNodes);
        b.forEach(this.addElement, this);
        var c = this.flattenMutationTree(a.removedNodes);
        c.forEach(this.removeElement, this)
      } else "attributes" === a.type && this.elementChanged(a.target, a.oldValue)
    }
  };
  var D = ["none", "auto", "pan-x", "pan-y", {
      rule: "pan-x pan-y",
      selectors: ["pan-x pan-y", "pan-y pan-x"]
    }],
    E = "",
    F = window.PointerEvent || window.MSPointerEvent,
    G = !window.ShadowDOMPolyfill && document.head.createShadowRoot,
    H = u.pointermap,
    I = 25,
    J = [1, 4, 2, 8, 16],
    K = !1;
  try {
    K = 1 === new MouseEvent("test", {
      buttons: 1
    }).buttons
  } catch (L) {}
  var M, N = {
      POINTER_ID: 1,
      POINTER_TYPE: "mouse",
      events: ["mousedown", "mousemove", "mouseup", "mouseover", "mouseout"],
      register: function (a) {
        u.listen(a, this.events)
      },
      unregister: function (a) {
        u.unlisten(a, this.events)
      },
      lastTouches: [],
      isEventSimulatedFromTouch: function (a) {
        for (var b, c = this.lastTouches, d = a.clientX, e = a.clientY, f = 0, g = c.length; f < g && (b = c[f]); f++) {
          var h = Math.abs(d - b.x),
            i = Math.abs(e - b.y);
          if (h <= I && i <= I) return !0
        }
      },
      prepareEvent: function (a) {
        var b = u.cloneEvent(a),
          c = b.preventDefault;
        return b.preventDefault = function () {
          a.preventDefault(), c()
        }, b.pointerId = this.POINTER_ID, b.isPrimary = !0, b.pointerType = this.POINTER_TYPE, b
      },
      prepareButtonsForMove: function (a, b) {
        var c = H.get(this.POINTER_ID);
        0 !== b.which && c ? a.buttons = c.buttons : a.buttons = 0, b.buttons = a.buttons
      },
      mousedown: function (a) {
        if (!this.isEventSimulatedFromTouch(a)) {
          var b = H.get(this.POINTER_ID),
            c = this.prepareEvent(a);
          K || (c.buttons = J[c.button], b && (c.buttons |= b.buttons), a.buttons = c.buttons), H.set(this.POINTER_ID, a), b && 0 !== b.buttons ? u.move(c) : u.down(c)
        }
      },
      mousemove: function (a) {
        if (!this.isEventSimulatedFromTouch(a)) {
          var b = this.prepareEvent(a);
          K || this.prepareButtonsForMove(b, a), b.button = -1, H.set(this.POINTER_ID, a), u.move(b)
        }
      },
      mouseup: function (a) {
        if (!this.isEventSimulatedFromTouch(a)) {
          var b = H.get(this.POINTER_ID),
            c = this.prepareEvent(a);
          if (!K) {
            var d = J[c.button];
            c.buttons = b ? b.buttons & ~d : 0, a.buttons = c.buttons
          }
          H.set(this.POINTER_ID, a),
            c.buttons &= ~J[c.button], 0 === c.buttons ? u.up(c) : u.move(c)
        }
      },
      mouseover: function (a) {
        if (!this.isEventSimulatedFromTouch(a)) {
          var b = this.prepareEvent(a);
          K || this.prepareButtonsForMove(b, a), b.button = -1, H.set(this.POINTER_ID, a), u.enterOver(b)
        }
      },
      mouseout: function (a) {
        if (!this.isEventSimulatedFromTouch(a)) {
          var b = this.prepareEvent(a);
          K || this.prepareButtonsForMove(b, a), b.button = -1, u.leaveOut(b)
        }
      },
      cancel: function (a) {
        var b = this.prepareEvent(a);
        u.cancel(b), this.deactivateMouse()
      },
      deactivateMouse: function () {
        H["delete"](this.POINTER_ID)
      }
    },
    O = u.captureInfo,
    P = v.findTarget.bind(v),
    Q = v.allShadows.bind(v),
    R = u.pointermap,
    S = 2500,
    T = 200,
    U = "touch-action",
    V = {
      events: ["touchstart", "touchmove", "touchend", "touchcancel"],
      register: function (a) {
        M.enableOnSubtree(a)
      },
      unregister: function () {},
      elementAdded: function (a) {
        var b = a.getAttribute(U),
          c = this.touchActionToScrollType(b);
        c && (a._scrollType = c, u.listen(a, this.events),
          Q(a).forEach(function (a) {
            a._scrollType = c, u.listen(a, this.events)
          }, this))
      },
      elementRemoved: function (a) {
        a._scrollType = void 0, u.unlisten(a, this.events),
          Q(a).forEach(function (a) {
            a._scrollType = void 0, u.unlisten(a, this.events)
          }, this)
      },
      elementChanged: function (a, b) {
        var c = a.getAttribute(U),
          d = this.touchActionToScrollType(c),
          e = this.touchActionToScrollType(b);
        d && e ? (a._scrollType = d, Q(a).forEach(function (a) {
          a._scrollType = d
        }, this)) : e ? this.elementRemoved(a) : d && this.elementAdded(a)
      },
      scrollTypes: {
        EMITTER: "none",
        XSCROLLER: "pan-x",
        YSCROLLER: "pan-y",
        SCROLLER: /^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/
      },
      touchActionToScrollType: function (a) {
        var b = a,
          c = this.scrollTypes;
        return "none" === b ? "none" : b === c.XSCROLLER ? "X" : b === c.YSCROLLER ? "Y" : c.SCROLLER.exec(b) ? "XY" : void 0
      },
      POINTER_TYPE: "touch",
      firstTouch: null,
      isPrimaryTouch: function (a) {
        return this.firstTouch === a.identifier
      },
      setPrimaryTouch: function (a) {
        (0 === R.size || 1 === R.size && R.has(1)) && (this.firstTouch = a.identifier, this.firstXY = {
          X: a.clientX,
          Y: a.clientY
        }, this.scrolling = !1, this.cancelResetClickCount())
      },
      removePrimaryPointer: function (a) {
        a.isPrimary && (this.firstTouch = null, this.firstXY = null, this.resetClickCount())
      },
      clickCount: 0,
      resetId: null,
      resetClickCount: function () {
        var a = function () {
          this.clickCount = 0, this.resetId = null
        }.bind(this);
        this.resetId = setTimeout(a, T)
      },
      cancelResetClickCount: function () {
        this.resetId && clearTimeout(this.resetId)
      },
      typeToButtons: function (a) {
        var b = 0;
        return "touchstart" !== a && "touchmove" !== a || (b = 1), b
      },
      touchToPointer: function (a) {
        var b = this.currentTouchEvent,
          c = u.cloneEvent(a),
          d = c.pointerId = a.identifier + 2;
        c.target = O[d] || P(c), c.bubbles = !0, c.cancelable = !0, c.detail = this.clickCount, c.button = 0, c.buttons = this.typeToButtons(b.type), c.width = 2 * (a.radiusX || a.webkitRadiusX || 0), c.height = 2 * (a.radiusY || a.webkitRadiusY || 0), c.pressure = a.force || a.webkitForce || .5, c.isPrimary = this.isPrimaryTouch(a), c.pointerType = this.POINTER_TYPE,
          c.altKey = b.altKey, c.ctrlKey = b.ctrlKey, c.metaKey = b.metaKey, c.shiftKey = b.shiftKey;
        var e = this;
        return c.preventDefault = function () {
          e.scrolling = !1, e.firstXY = null, b.preventDefault()
        }, c
      },
      processTouches: function (a, b) {
        var c = a.changedTouches;
        this.currentTouchEvent = a;
        for (var d, e = 0; e < c.length; e++) d = c[e], b.call(this, this.touchToPointer(d))
      },
      shouldScroll: function (a) {
        if (this.firstXY) {
          var b, c = a.currentTarget._scrollType;
          if ("none" === c)
            b = !1;
          else if ("XY" === c)
            b = !0;
          else {
            var d = a.changedTouches[0],
              e = c,
              f = "Y" === c ? "X" : "Y",
              g = Math.abs(d["client" + e] - this.firstXY[e]),
              h = Math.abs(d["client" + f] - this.firstXY[f]);
            b = g >= h
          }
          return this.firstXY = null, b
        }
      },
      findTouch: function (a, b) {
        for (var c, d = 0, e = a.length; d < e && (c = a[d]); d++)
          if (c.identifier === b) return !0
      },
      vacuumTouches: function (a) {
        var b = a.touches;
        if (R.size >= b.length) {
          var c = [];
          R.forEach(function (a, d) {
            if (1 !== d && !this.findTouch(b, d - 2)) {
              var e = a.out;
              c.push(e)
            }
          }, this), c.forEach(this.cancelOut, this)
        }
      },
      touchstart: function (a) {
        this.vacuumTouches(a), this.setPrimaryTouch(a.changedTouches[0]), this.dedupSynthMouse(a), this.scrolling || (this.clickCount++, this.processTouches(a, this.overDown))
      },
      overDown: function (a) {
        R.set(a.pointerId, {
          target: a.target,
          out: a,
          outTarget: a.target
        }), u.enterOver(a), u.down(a)
      },
      touchmove: function (a) {
        this.scrolling || (this.shouldScroll(a) ? (this.scrolling = !0, this.touchcancel(a)) : (a.preventDefault(), this.processTouches(a, this.moveOverOut)))
      },
      moveOverOut: function (a) {
        var b = a,
          c = R.get(b.pointerId);
        if (c) {
          var d = c.out,
            e = c.outTarget;
          u.move(b), d && e !== b.target && (d.relatedTarget = b.target, b.relatedTarget = e,
            d.target = e, b.target ? (u.leaveOut(d), u.enterOver(b)) : (
              b.target = e, b.relatedTarget = null, this.cancelOut(b))), c.out = b, c.outTarget = b.target
        }
      },
      touchend: function (a) {
        this.dedupSynthMouse(a), this.processTouches(a, this.upOut)
      },
      upOut: function (a) {
        this.scrolling || (u.up(a), u.leaveOut(a)), this.cleanUpPointer(a)
      },
      touchcancel: function (a) {
        this.processTouches(a, this.cancelOut)
      },
      cancelOut: function (a) {
        u.cancel(a), u.leaveOut(a), this.cleanUpPointer(a)
      },
      cleanUpPointer: function (a) {
        R["delete"](a.pointerId), this.removePrimaryPointer(a)
      },
      dedupSynthMouse: function (a) {
        var b = N.lastTouches,
          c = a.changedTouches[0];
        if (this.isPrimaryTouch(c)) {
          var d = {
            x: c.clientX,
            y: c.clientY
          };
          b.push(d);
          var e = function (a, b) {
            var c = a.indexOf(b);
            c > -1 && a.splice(c, 1)
          }.bind(null, b, d);
          setTimeout(e, S)
        }
      }
    };
  M = new c(V.elementAdded, V.elementRemoved, V.elementChanged, V);
  var W, X, Y, Z = u.pointermap,
    $ = window.MSPointerEvent && "number" == typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,
    _ = {
      events: ["MSPointerDown", "MSPointerMove", "MSPointerUp", "MSPointerOut", "MSPointerOver", "MSPointerCancel", "MSGotPointerCapture", "MSLostPointerCapture"],
      register: function (a) {
        u.listen(a, this.events)
      },
      unregister: function (a) {
        u.unlisten(a, this.events)
      },
      POINTER_TYPES: ["", "unavailable", "touch", "pen", "mouse"],
      prepareEvent: function (a) {
        var b = a;
        return $ && (b = u.cloneEvent(a), b.pointerType = this.POINTER_TYPES[a.pointerType]), b
      },
      cleanup: function (a) {
        Z["delete"](a)
      },
      MSPointerDown: function (a) {
        Z.set(a.pointerId, a);
        var b = this.prepareEvent(a);
        u.down(b)
      },
      MSPointerMove: function (a) {
        var b = this.prepareEvent(a);
        u.move(b)
      },
      MSPointerUp: function (a) {
        var b = this.prepareEvent(a);
        u.up(b), this.cleanup(a.pointerId)
      },
      MSPointerOut: function (a) {
        var b = this.prepareEvent(a);
        u.leaveOut(b)
      },
      MSPointerOver: function (a) {
        var b = this.prepareEvent(a);
        u.enterOver(b)
      },
      MSPointerCancel: function (a) {
        var b = this.prepareEvent(a);
        u.cancel(b), this.cleanup(a.pointerId)
      },
      MSLostPointerCapture: function (a) {
        var b = u.makeEvent("lostpointercapture", a);
        u.dispatchEvent(b)
      },
      MSGotPointerCapture: function (a) {
        var b = u.makeEvent("gotpointercapture", a);
        u.dispatchEvent(b)
      }
    },
    aa = window.navigator;
  aa.msPointerEnabled ? (W = function (a) {
    i(a), j(this), k(a) && (u.setCapture(a, this, !0), this.msSetPointerCapture(a))
  }, X = function (a) {
    i(a), u.releaseCapture(a, !0), this.msReleasePointerCapture(a)
  }) : (W = function (a) {
    i(a), j(this), k(a) && u.setCapture(a, this)
  }, X = function (a) {
    i(a), u.releaseCapture(a)
  }), Y = function (a) {
    return !!u.captureInfo[a]
  }, g(), h(), l();
  var ba = {
    dispatcher: u,
    Installer: c,
    PointerEvent: a,
    PointerMap: p,
    targetFinding: v
  };
  return ba
});
///////////////////////////////////////////////

///////////////////////////////////////////////
var config = {"show_fabrication":false,"redraw_on_drag":true,"highlight_pin1":false,"extra_fields":["BOM_Manufacturer","BOM_Manufacturer Part","BOM_Supplier","BOM_Supplier Part"],"dark_mode":false,"bom_view":"left-right","board_rotation":0,"checkboxes":"Sourced,Placed","show_silkscreen":true,"show_pads":true,"layer_view":"FB"};
///////////////////////////////////////////////

///////////////////////////////////////////////
var pcbdata = {"ibom_version":"v2.3-50-g53ae\n","edges_bbox":{"minx":4184.3,"miny":3112.9,"maxx":4328.2,"maxy":3406.4},"edges":[{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4197.1652,3381.6891 4197.1654,3137.5951"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4283.7792,3393.5001 4208.976,3393.5001"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4315.2753,3157.2801 4315.2753,3362.004"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4208.976,3125.784 4283.7792,3125.784"},{"type":"arc","width":1,"svgpath":"M 4315.2752 3362.0041 A 31.496 31.496 0 0 1 4283.7792 3393.5001","net":""},{"type":"arc","width":1,"svgpath":"M 4283.7792 3125.7841 A 31.496 31.496 0 0 1 4315.2752 3157.2801","net":""},{"type":"arc","width":1,"svgpath":"M 4197.1652 3137.5951 A 11.811 11.811 0 0 1 4208.9762 3125.7841","net":""},{"type":"arc","width":1,"svgpath":"M 4208.9762 3393.5001 A 11.811 11.811 0 0 1 4197.1652 3381.6891","net":""},{"type":"circle","start":[4303.464,3365.941],"radius":4.7244,"width":0.5},{"type":"circle","start":[4303.464,3153.343],"radius":4.7244,"width":0.5},{"type":"circle","start":[4208.976,3137.595],"radius":4.7244,"width":0.5},{"type":"circle","start":[4208.976,3381.689],"radius":4.7244,"width":0.5}],"drawings":{"silkscreen":{"F":[{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4239.9721,3350.3805 4239.9721,3329.7395 4264.5879,3329.7395 4264.5879,3350.3805 4239.9721,3350.3805"},{"type":"circle","_svgpath":"M 4252.28, 3339.96 m -6.519, 0 a 6.519,6.519 0 1,0 13.038,0 a 6.519,6.519 0 1,0 -13.038,0","start":[4252.28,3339.96],"radius":6.519,"width":"1","net":""},{"type":"text","svgpath":"M 4251.26 3305.39L4251.26 3308.46 L4251.46 3309.07 L4251.87 3309.48 L4252.48 3309.68 L4252.89 3309.68 L4253.51 3309.48 L4253.92 3309.07 L4254.12 3308.46 L4254.12 3305.39 M 4255.47 3305.39L4255.47 3309.68 M 4258.33 3305.39L4255.47 3308.25 M 4256.49 3307.23L4258.33 3309.68 M 4259.68 3307.84L4263.37 3307.84 M 4264.72 3305.39L4264.72 3309.68 M 4264.72 3305.39L4266.56 3305.39 L4267.17 3305.59 L4267.38 3305.8 L4267.58 3306.21 L4267.58 3306.62 L4267.38 3307.03 L4267.17 3307.23 L4266.56 3307.43 M 4264.72 3307.43L4266.56 3307.43 L4267.17 3307.64 L4267.38 3307.84 L4267.58 3308.25 L4267.58 3308.87 L4267.38 3309.28 L4267.17 3309.48 L4266.56 3309.68 L4264.72 3309.68 M 4270.16 3305.39L4269.54 3305.59 L4269.13 3306.21 L4268.93 3307.23 L4268.93 3307.84 L4269.13 3308.87 L4269.54 3309.48 L4270.16 3309.68 L4270.57 3309.68 L4271.18 3309.48 L4271.59 3308.87 L4271.79 3307.84 L4271.79 3307.23 L4271.59 3306.21 L4271.18 3305.59 L4270.57 3305.39 L4270.16 3305.39 M 4273.35 3306.41L4273.35 3306.21 L4273.55 3305.8 L4273.76 3305.59 L4274.17 3305.39 L4274.98 3305.39 L4275.39 3305.59 L4275.6 3305.8 L4275.8 3306.21 L4275.8 3306.62 L4275.6 3307.03 L4275.19 3307.64 L4273.14 3309.68 L4276.01 3309.68 M 4277.56 3306.41L4277.56 3306.21 L4277.77 3305.8 L4277.97 3305.59 L4278.38 3305.39 L4279.2 3305.39 L4279.61 3305.59 L4279.81 3305.8 L4280.02 3306.21 L4280.02 3306.62 L4279.81 3307.03 L4279.4 3307.64 L4277.36 3309.68 L4280.22 3309.68 M 4282.59 3305.39L4281.98 3305.59 L4281.78 3306 L4281.78 3306.41 L4281.98 3306.82 L4282.39 3307.03 L4283.21 3307.23 L4283.82 3307.43 L4284.23 3307.84 L4284.43 3308.25 L4284.43 3308.87 L4284.23 3309.28 L4284.03 3309.48 L4283.41 3309.68 L4282.59 3309.68 L4281.98 3309.48 L4281.78 3309.28 L4281.57 3308.87 L4281.57 3308.25 L4281.78 3307.84 L4282.18 3307.43 L4282.8 3307.23 L4283.62 3307.03 L4284.03 3306.82 L4284.23 3306.41 L4284.23 3306 L4284.03 3305.59 L4283.41 3305.39 L4282.59 3305.39 M 4285.78 3307.84L4289.47 3307.84 M 4293.88 3306.41L4293.68 3306 L4293.27 3305.59 L4292.86 3305.39 L4292.04 3305.39 L4291.63 3305.59 L4291.23 3306 L4291.02 3306.41 L4290.82 3307.03 L4290.82 3308.05 L4291.02 3308.66 L4291.23 3309.07 L4291.63 3309.48 L4292.04 3309.68 L4292.86 3309.68 L4293.27 3309.48 L4293.68 3309.07 L4293.88 3308.66 L4293.88 3308.05 M 4292.86 3308.05L4293.88 3308.05 M 4295.23 3306.21L4295.64 3306 L4296.26 3305.39 L4296.26 3309.68 M 4298.83 3305.39L4298.22 3305.59 L4297.81 3306.21 L4297.61 3307.23 L4297.61 3307.84 L4297.81 3308.87 L4298.22 3309.48 L4298.83 3309.68 L4299.24 3309.68 L4299.86 3309.48 L4300.27 3308.87 L4300.47 3307.84 L4300.47 3307.23 L4300.27 3306.21 L4299.86 3305.59 L4299.24 3305.39 L4298.83 3305.39 M 4301.82 3307.84L4305.5 3307.84 M 4306.85 3306.21L4307.26 3306 L4307.88 3305.39 L4307.88 3309.68 M 4311.68 3306L4311.48 3305.59 L4310.86 3305.39 L4310.45 3305.39 L4309.84 3305.59 L4309.43 3306.21 L4309.23 3307.23 L4309.23 3308.25 L4309.43 3309.07 L4309.84 3309.48 L4310.45 3309.68 L4310.66 3309.68 L4311.27 3309.48 L4311.68 3309.07 L4311.88 3308.46 L4311.88 3308.25 L4311.68 3307.64 L4311.27 3307.23 L4310.66 3307.03 L4310.45 3307.03 L4309.84 3307.23 L4309.43 3307.64 L4309.23 3308.25 M 4314.46 3305.39L4313.85 3305.59 L4313.44 3306.21 L4313.23 3307.23 L4313.23 3307.84 L4313.44 3308.87 L4313.85 3309.48 L4314.46 3309.68 L4314.87 3309.68 L4315.48 3309.48 L4315.89 3308.87 L4316.1 3307.84 L4316.1 3307.23 L4315.89 3306.21 L4315.48 3305.59 L4314.87 3305.39 L4314.46 3305.39 ","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M 4252.1138 3315.5548 L 4252.1138 3315.5548 Q 4252.1138 3315.7648 4252.0238 3315.9148 Q 4251.9438 3316.0648 4251.7938 3316.1748 Q 4251.6438 3316.2748 4251.4338 3316.3248 Q 4251.2238 3316.3748 4250.9738 3316.3748 L 4250.9738 3316.3748 Q 4250.8638 3316.3748 4250.7438 3316.3648 Q 4250.6338 3316.3548 4250.5238 3316.3448 Q 4250.4238 3316.3348 4250.3338 3316.3148 Q 4250.2438 3316.2948 4250.1638 3316.2748 L 4250.1638 3316.2748 L 4250.1638 3315.8948 Q 4250.3338 3315.9548 4250.5338 3315.9948 Q 4250.7438 3316.0248 4251.0038 3316.0248 L 4251.0038 3316.0248 Q 4251.1938 3316.0248 4251.3238 3315.9948 Q 4251.4538 3315.9748 4251.5438 3315.9148 Q 4251.6238 3315.8548 4251.6638 3315.7748 Q 4251.7038 3315.6848 4251.7038 3315.5748 L 4251.7038 3315.5748 Q 4251.7038 3315.4648 4251.6338 3315.3848 Q 4251.5738 3315.2948 4251.4638 3315.2348 Q 4251.3638 3315.1648 4251.2238 3315.1148 Q 4251.0938 3315.0648 4250.9538 3315.0048 Q 4250.8138 3314.9448 4250.6738 3314.8748 Q 4250.5438 3314.8148 4250.4338 3314.7248 Q 4250.3338 3314.6248 4250.2638 3314.5048 Q 4250.2038 3314.3848 4250.2038 3314.2148 L 4250.2038 3314.2148 Q 4250.2038 3314.0648 4250.2638 3313.9248 Q 4250.3238 3313.7848 4250.4538 3313.6748 Q 4250.5838 3313.5548 4250.7838 3313.4948 Q 4250.9838 3313.4248 4251.2738 3313.4248 L 4251.2738 3313.4248 Q 4251.3438 3313.4248 4251.4238 3313.4348 Q 4251.5138 3313.4348 4251.5938 3313.4448 Q 4251.6838 3313.4648 4251.7738 3313.4748 Q 4251.8538 3313.4948 4251.9238 3313.5048 L 4251.9238 3313.5048 L 4251.9238 3313.8648 Q 4251.7538 3313.8148 4251.5838 3313.7848 Q 4251.4238 3313.7648 4251.2638 3313.7648 L 4251.2638 3313.7648 Q 4250.9238 3313.7648 4250.7638 3313.8748 Q 4250.6038 3313.9848 4250.6038 3314.1748 L 4250.6038 3314.1748 Q 4250.6038 3314.2948 4250.6738 3314.3748 Q 4250.7338 3314.4548 4250.8438 3314.5248 Q 4250.9538 3314.5948 4251.0838 3314.6448 Q 4251.2238 3314.6948 4251.3638 3314.7548 Q 4251.5038 3314.8148 4251.6338 3314.8848 Q 4251.7738 3314.9448 4251.8738 3315.0448 Q 4251.9838 3315.1348 4252.0438 3315.2648 Q 4252.1138 3315.3848 4252.1138 3315.5548 Z  M 4254.4238 3313.4648 L 4254.7738 3313.4648 L 4254.5738 3316.3348 L 4254.0738 3316.3348 L 4253.7138 3315.3148 L 4253.6138 3314.9848 L 4253.5138 3315.3348 L 4253.1838 3316.3348 L 4252.6938 3316.3348 L 4252.4938 3313.4648 L 4252.8638 3313.4648 L 4252.9738 3315.4148 L 4253.0038 3315.9548 L 4253.1438 3315.4948 L 4253.4938 3314.4348 L 4253.7638 3314.4348 L 4254.1638 3315.5748 L 4254.2938 3315.9548 L 4254.3038 3315.5548 L 4254.4238 3313.4648 Z  M 4257.0638 3315.9748 L 4257.0638 3316.3348 L 4255.2538 3316.3348 L 4255.2538 3315.9748 L 4255.9938 3315.9748 L 4255.9938 3313.8848 L 4255.3038 3314.2548 L 4255.1638 3313.9348 L 4256.0838 3313.4448 L 4256.4138 3313.4448 L 4256.4138 3315.9748 L 4257.0638 3315.9748 Z ","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4245.1944,3139.1697 4245.1944,3133.2642"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4259.3676,3139.1697 4259.3676,3133.2642"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4259.3676,3133.2642 4245.1944,3133.2642"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4259.3676,3139.9571 4259.3676,3139.1697"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4245.1944,3142.1225 4245.1944,3139.1697"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4245.1944,3139.9571 4245.1944,3142.1225"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4259.3676,3139.9571 4259.3676,3142.1225"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4266.454,3168.107 4238.108,3168.107 4238.108,3142.516 4266.454,3142.516 4266.454,3168.107"},{"type":"circle","_svgpath":"M 4252.281, 3157.28 m -5.853, 0 a 5.853,5.853 0 1,0 11.706,0 a 5.853,5.853 0 1,0 -11.706,0","start":[4252.281,3157.28],"radius":5.853,"width":"1","net":""},{"type":"text","svgpath":"M 4186.42 3177.53 L 4186.42 3181.82 M 4184.98 3177.53 L 4187.85 3177.53 M 4192.06 3178.14 L 4191.65 3177.73 L 4191.04 3177.53 L 4190.22 3177.53 L 4189.61 3177.73 L 4189.2 3178.14 L 4189.2 3178.55 L 4189.4 3178.96 L 4189.61 3179.17 L 4190.02 3179.37 L 4191.24 3179.78 L 4191.65 3179.98 L 4191.86 3180.19 L 4192.06 3180.6 L 4192.06 3181.21 L 4191.65 3181.62 L 4191.04 3181.82 L 4190.22 3181.82 L 4189.61 3181.62 L 4189.2 3181.21 M 4193.41 3179.98 L 4197.09 3179.98 M 4198.44 3178.35 L 4198.85 3178.14 L 4199.47 3177.53 L 4199.47 3181.82 M 4202.04 3177.53 L 4201.43 3177.73 L 4201.02 3178.35 L 4200.82 3179.37 L 4200.82 3179.98 L 4201.02 3181.01 L 4201.43 3181.62 L 4202.04 3181.82 L 4202.45 3181.82 L 4203.07 3181.62 L 4203.47 3181.01 L 4203.68 3179.98 L 4203.68 3179.37 L 4203.47 3178.35 L 4203.07 3177.73 L 4202.45 3177.53 L 4202.04 3177.53 M 4207.69 3178.96 L 4207.48 3179.57 L 4207.07 3179.98 L 4206.46 3180.19 L 4206.26 3180.19 L 4205.64 3179.98 L 4205.23 3179.57 L 4205.03 3178.96 L 4205.03 3178.76 L 4205.23 3178.14 L 4205.64 3177.73 L 4206.26 3177.53 L 4206.46 3177.53 L 4207.07 3177.73 L 4207.48 3178.14 L 4207.69 3178.96 L 4207.69 3179.98 L 4207.48 3181.01 L 4207.07 3181.62 L 4206.46 3181.82 L 4206.05 3181.82 L 4205.44 3181.62 L 4205.23 3181.21 M 4209.45 3177.53 L 4211.7 3177.53 L 4210.47 3179.17 L 4211.08 3179.17 L 4211.49 3179.37 L 4211.7 3179.57 L 4211.9 3180.19 L 4211.9 3180.6 L 4211.7 3181.21 L 4211.29 3181.62 L 4210.67 3181.82 L 4210.06 3181.82 L 4209.45 3181.62 L 4209.24 3181.42 L 4209.04 3181.01 M 4214.89 3177.53 L 4213.25 3181.82 M 4214.89 3177.53 L 4216.52 3181.82 M 4213.87 3180.39 L 4215.91 3180.39 M 4217.87 3179.98 L 4221.56 3179.98 M 4224.54 3177.53 L 4222.91 3181.82 M 4224.54 3177.53 L 4226.18 3181.82 M 4223.52 3180.39 L 4225.57 3180.39 M 4229.98 3177.53 L 4227.94 3177.53 L 4227.73 3179.37 L 4227.94 3179.17 L 4228.55 3178.96 L 4229.17 3178.96 L 4229.78 3179.17 L 4230.19 3179.57 L 4230.39 3180.19 L 4230.39 3180.6 L 4230.19 3181.21 L 4229.78 3181.62 L 4229.17 3181.82 L 4228.55 3181.82 L 4227.94 3181.62 L 4227.73 3181.42 L 4227.53 3181.01 M 4231.74 3177.53 L 4231.74 3181.82 M 4231.74 3177.53 L 4233.58 3177.53 L 4234.2 3177.73 L 4234.4 3177.94 L 4234.61 3178.35 L 4234.61 3178.76 L 4234.4 3179.17 L 4234.2 3179.37 L 4233.58 3179.57 M 4231.74 3179.57 L 4233.58 3179.57 L 4234.2 3179.78 L 4234.4 3179.98 L 4234.61 3180.39 L 4234.61 3181.01 L 4234.4 3181.42 L 4234.2 3181.62 L 4233.58 3181.82 L 4231.74 3181.82 M 4236.37 3177.53 L 4238.62 3177.53 L 4237.39 3179.17 L 4238 3179.17 L 4238.41 3179.37 L 4238.62 3179.57 L 4238.82 3180.19 L 4238.82 3180.6 L 4238.62 3181.21 L 4238.21 3181.62 L 4237.59 3181.82 L 4236.98 3181.82 L 4236.37 3181.62 L 4236.16 3181.42 L 4235.96 3181.01 M 4240.17 3179.98 L 4243.85 3179.98 M 4245.2 3177.53 L 4245.2 3181.82 M 4245.2 3177.53 L 4246.63 3177.53 L 4247.25 3177.73 L 4247.66 3178.14 L 4247.86 3178.55 L 4248.07 3179.17 L 4248.07 3180.19 L 4247.86 3180.8 L 4247.66 3181.21 L 4247.25 3181.62 L 4246.63 3181.82 L 4245.2 3181.82 M 4249.62 3178.55 L 4249.62 3178.35 L 4249.82 3177.94 L 4250.03 3177.73 L 4250.44 3177.53 L 4251.26 3177.53 L 4251.67 3177.73 L 4251.87 3177.94 L 4252.07 3178.35 L 4252.07 3178.76 L 4251.87 3179.17 L 4251.46 3179.78 L 4249.42 3181.82 L 4252.28 3181.82","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M 4269.6 3144.98 L 4269.6 3144.98 Q 4269.4 3144.98 4269.24 3144.89 Q 4269.09 3144.81 4268.99 3144.66 Q 4268.89 3144.51 4268.84 3144.3 Q 4268.79 3144.09 4268.79 3143.84 L 4268.79 3143.84 Q 4268.79 3143.72 4268.79 3143.61 Q 4268.8 3143.5 4268.82 3143.39 Q 4268.83 3143.29 4268.85 3143.2 Q 4268.86 3143.1 4268.88 3143.03 L 4268.88 3143.03 L 4269.26 3143.03 Q 4269.2 3143.19 4269.17 3143.4 Q 4269.13 3143.6 4269.13 3143.87 L 4269.13 3143.87 Q 4269.13 3144.06 4269.16 3144.19 Q 4269.19 3144.32 4269.25 3144.41 Q 4269.31 3144.49 4269.39 3144.53 Q 4269.47 3144.57 4269.58 3144.57 L 4269.58 3144.57 Q 4269.7 3144.57 4269.78 3144.5 Q 4269.86 3144.44 4269.93 3144.33 Q 4269.99 3144.23 4270.05 3144.09 Q 4270.1 3143.96 4270.16 3143.82 Q 4270.21 3143.67 4270.28 3143.54 Q 4270.35 3143.4 4270.44 3143.3 Q 4270.53 3143.19 4270.65 3143.13 Q 4270.78 3143.06 4270.95 3143.06 L 4270.95 3143.06 Q 4271.09 3143.06 4271.24 3143.13 Q 4271.38 3143.19 4271.49 3143.32 Q 4271.6 3143.45 4271.67 3143.65 Q 4271.74 3143.85 4271.74 3144.13 L 4271.74 3144.13 Q 4271.74 3144.21 4271.73 3144.29 Q 4271.72 3144.38 4271.71 3144.46 Q 4271.7 3144.55 4271.68 3144.63 Q 4271.67 3144.72 4271.65 3144.79 L 4271.65 3144.79 L 4271.3 3144.79 Q 4271.35 3144.62 4271.37 3144.45 Q 4271.4 3144.28 4271.4 3144.13 L 4271.4 3144.13 Q 4271.4 3143.79 4271.29 3143.63 Q 4271.17 3143.47 4270.98 3143.47 L 4270.98 3143.47 Q 4270.87 3143.47 4270.78 3143.54 Q 4270.7 3143.6 4270.64 3143.71 Q 4270.57 3143.81 4270.52 3143.95 Q 4270.46 3144.08 4270.4 3144.22 Q 4270.35 3144.36 4270.28 3144.5 Q 4270.21 3144.64 4270.12 3144.74 Q 4270.02 3144.85 4269.9 3144.91 Q 4269.77 3144.98 4269.6 3144.98 Z M 4271.7 3147.28 L 4271.7 3147.63 L 4268.82 3147.44 L 4268.82 3146.93 L 4269.85 3146.58 L 4270.17 3146.48 L 4269.82 3146.38 L 4268.82 3146.05 L 4268.82 3145.56 L 4271.7 3145.36 L 4271.7 3145.73 L 4269.74 3145.84 L 4269.21 3145.87 L 4269.66 3146.01 L 4270.73 3146.36 L 4270.73 3146.63 L 4269.59 3147.03 L 4269.21 3147.16 L 4269.6 3147.17 L 4271.7 3147.28 Z M 4269.19 3149.95 L 4268.82 3149.95 L 4268.82 3148.06 L 4269.17 3148.06 L 4269.91 3148.8 Q 4270.09 3148.98 4270.22 3149.1 Q 4270.35 3149.21 4270.46 3149.27 Q 4270.57 3149.34 4270.66 3149.36 Q 4270.76 3149.38 4270.87 3149.38 L 4270.87 3149.38 Q 4270.98 3149.38 4271.07 3149.35 Q 4271.17 3149.32 4271.24 3149.26 Q 4271.31 3149.21 4271.36 3149.11 Q 4271.4 3149.02 4271.4 3148.88 L 4271.4 3148.88 Q 4271.4 3148.7 4271.32 3148.55 Q 4271.24 3148.4 4271.11 3148.28 L 4271.11 3148.28 L 4271.36 3148.07 Q 4271.53 3148.23 4271.63 3148.44 Q 4271.74 3148.65 4271.74 3148.94 L 4271.74 3148.94 Q 4271.74 3149.13 4271.68 3149.28 Q 4271.62 3149.44 4271.51 3149.55 Q 4271.41 3149.67 4271.25 3149.73 Q 4271.09 3149.79 4270.9 3149.79 L 4270.9 3149.79 Q 4270.73 3149.79 4270.59 3149.75 Q 4270.45 3149.71 4270.31 3149.62 Q 4270.17 3149.53 4270.02 3149.39 Q 4269.88 3149.26 4269.7 3149.07 L 4269.7 3149.07 L 4269.19 3148.55 L 4269.19 3149.95 Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4299.2784,3209.4005 4299.2784,3207.1322 4268.2784,3207.1322"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4299.2784,3227.117 4299.2784,3218.1473"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4268.2784,3235.8638 4268.2784,3238.1322 4299.2784,3238.1322 4299.2784,3235.8638"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4268.2784,3218.1473 4268.2784,3227.117"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4268.2784,3207.1322 4268.2784,3209.4005"},{"type":"circle","_svgpath":"M 4283.779, 3222.632 m -10.259, 0 a 10.259,10.259 0 1,0 20.518,0 a 10.259,10.259 0 1,0 -20.518,0","start":[4283.779,3222.632],"radius":10.259,"width":"1","net":""},{"type":"text","svgpath":"M 4284.87 3193.2339 L 4284.87 3197.5239 M 4283.44 3193.2339 L 4286.3 3193.2339 M 4290.72 3194.2539 L 4290.52 3193.8439 L 4290.11 3193.4339 L 4289.7 3193.2339 L 4288.88 3193.2339 L 4288.47 3193.4339 L 4288.06 3193.8439 L 4287.86 3194.2539 L 4287.65 3194.8639 L 4287.65 3195.8839 L 4287.86 3196.5039 L 4288.06 3196.9139 L 4288.47 3197.3239 L 4288.88 3197.5239 L 4289.7 3197.5239 L 4290.11 3197.3239 L 4290.52 3196.9139 L 4290.72 3196.5039 M 4292.07 3195.6839 L 4295.75 3195.6839 M 4297.1 3194.0439 L 4297.51 3193.8439 L 4298.13 3193.2339 L 4298.13 3197.5239 M 4299.48 3194.0439 L 4299.89 3193.8439 L 4300.5 3193.2339 L 4300.5 3197.5239 M 4301.85 3194.0439 L 4302.26 3193.8439 L 4302.87 3193.2339 L 4302.87 3197.5239 M 4307.09 3193.2339 L 4305.04 3197.5239 M 4304.22 3193.2339 L 4307.09 3193.2339 M 4308.44 3195.6839 L 4312.12 3195.6839 M 4313.47 3193.2339 L 4313.47 3197.5239 M 4313.47 3193.2339 L 4315.31 3193.2339 L 4315.92 3193.4339 L 4316.13 3193.6339 L 4316.33 3194.0439 L 4316.33 3194.4539 L 4316.13 3194.8639 L 4315.92 3195.0739 L 4315.31 3195.2739 M 4313.47 3195.2739 L 4315.31 3195.2739 L 4315.92 3195.4839 L 4316.13 3195.6839 L 4316.33 3196.0939 L 4316.33 3196.7039 L 4316.13 3197.1139 L 4315.92 3197.3239 L 4315.31 3197.5239 L 4313.47 3197.5239","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M4285.63 3203.99L4285.63 3203.99Q4285.63 3204.20 4285.55 3204.35Q4285.46 3204.50 4285.32 3204.61Q4285.17 3204.71 4284.96 3204.76Q4284.75 3204.81 4284.49 3204.81L4284.49 3204.81Q4284.38 3204.81 4284.27 3204.80Q4284.15 3204.79 4284.05 3204.78Q4283.94 3204.77 4283.85 3204.75Q4283.76 3204.73 4283.68 3204.71L4283.68 3204.71L4283.68 3204.33Q4283.85 3204.39 4284.05 3204.43Q4284.26 3204.46 4284.52 3204.46L4284.52 3204.46Q4284.71 3204.46 4284.84 3204.43Q4284.98 3204.41 4285.06 3204.35Q4285.15 3204.29 4285.18 3204.21Q4285.22 3204.12 4285.22 3204.01L4285.22 3204.01Q4285.22 3203.90 4285.16 3203.82Q4285.09 3203.73 4284.99 3203.67Q4284.88 3203.60 4284.75 3203.55Q4284.61 3203.50 4284.47 3203.44Q4284.33 3203.38 4284.20 3203.31Q4284.06 3203.25 4283.95 3203.16Q4283.85 3203.06 4283.78 3202.94Q4283.72 3202.82 4283.72 3202.65L4283.72 3202.65Q4283.72 3202.50 4283.78 3202.36Q4283.84 3202.22 4283.97 3202.11Q4284.10 3201.99 4284.31 3201.93Q4284.51 3201.86 4284.79 3201.86L4284.79 3201.86Q4284.86 3201.86 4284.95 3201.87Q4285.03 3201.87 4285.12 3201.88Q4285.21 3201.90 4285.29 3201.91Q4285.37 3201.93 4285.45 3201.94L4285.45 3201.94L4285.45 3202.30Q4285.28 3202.25 4285.11 3202.22Q4284.94 3202.20 4284.78 3202.20L4284.78 3202.20Q4284.44 3202.20 4284.29 3202.31Q4284.13 3202.42 4284.13 3202.61L4284.13 3202.61Q4284.13 3202.73 4284.19 3202.81Q4284.26 3202.89 4284.36 3202.96Q4284.47 3203.03 4284.60 3203.08Q4284.74 3203.13 4284.88 3203.19Q4285.02 3203.25 4285.16 3203.32Q4285.29 3203.38 4285.40 3203.48Q4285.50 3203.57 4285.57 3203.70Q4285.63 3203.82 4285.63 3203.99ZM4287.94 3201.90L4288.29 3201.90L4288.10 3204.77L4287.59 3204.77L4287.23 3203.75L4287.13 3203.42L4287.03 3203.77L4286.70 3204.77L4286.21 3204.77L4286.01 3201.90L4286.38 3201.90L4286.49 3203.85L4286.53 3204.39L4286.67 3203.93L4287.01 3202.87L4287.28 3202.87L4287.68 3204.01L4287.82 3204.39L4287.83 3203.99L4287.94 3201.90ZM4290.55 3203.90L4290.55 3203.90Q4290.55 3204.09 4290.47 3204.25Q4290.40 3204.42 4290.24 3204.54Q4290.09 3204.67 4289.85 3204.74Q4289.62 3204.81 4289.31 3204.81L4289.31 3204.81Q4289.14 3204.81 4289.00 3204.80Q4288.87 3204.79 4288.75 3204.77L4288.75 3204.77L4288.75 3204.43Q4288.89 3204.45 4289.04 3204.46Q4289.19 3204.48 4289.35 3204.48L4289.35 3204.48Q4289.56 3204.48 4289.72 3204.44Q4289.87 3204.40 4289.96 3204.33Q4290.06 3204.26 4290.11 3204.15Q4290.15 3204.05 4290.15 3203.92L4290.15 3203.92Q4290.15 3203.80 4290.10 3203.71Q4290.04 3203.63 4289.95 3203.57Q4289.85 3203.51 4289.72 3203.48Q4289.59 3203.45 4289.43 3203.45L4289.43 3203.45L4289.10 3203.45L4289.10 3203.13L4289.43 3203.13Q4289.56 3203.13 4289.67 3203.10Q4289.78 3203.06 4289.85 3203.00Q4289.93 3202.94 4289.97 3202.84Q4290.01 3202.75 4290.01 3202.63L4290.01 3202.63Q4290.01 3202.40 4289.87 3202.30Q4289.73 3202.19 4289.45 3202.19L4289.45 3202.19Q4289.31 3202.19 4289.16 3202.22Q4289.00 3202.25 4288.83 3202.30L4288.83 3202.30L4288.83 3201.97Q4288.90 3201.94 4288.99 3201.92Q4289.07 3201.90 4289.15 3201.89Q4289.24 3201.87 4289.32 3201.87Q4289.41 3201.86 4289.48 3201.86L4289.48 3201.86Q4289.71 3201.86 4289.89 3201.91Q4290.06 3201.96 4290.18 3202.05Q4290.29 3202.14 4290.35 3202.27Q4290.41 3202.41 4290.41 3202.57L4290.41 3202.57Q4290.41 3202.82 4290.28 3202.98Q4290.16 3203.15 4289.94 3203.25L4289.94 3203.25Q4290.05 3203.27 4290.16 3203.32Q4290.27 3203.37 4290.35 3203.45Q4290.44 3203.54 4290.50 3203.65Q4290.55 3203.76 4290.55 3203.90Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4265.5143,3269.628 4267.7826,3269.628 4267.7826,3238.628"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4247.7978,3269.628 4256.7675,3269.628"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4239.051,3238.628 4236.7826,3238.628 4236.7826,3269.628 4239.051,3269.628"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4256.7675,3238.628 4247.7978,3238.628"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4267.7826,3238.628 4265.5143,3238.628"},{"type":"circle","_svgpath":"M 4252.283, 3254.128 m -10.259, 0 a 10.259,10.259 0 1,0 20.518,0 a 10.259,10.259 0 1,0 -20.518,0","start":[4252.283,3254.128],"radius":10.259,"width":"1","net":""},{"type":"text","svgpath":"M 4277.3939 3285.2516 L 4281.6939 3285.2516 M 4277.3939 3286.6816 L 4277.3939 3283.8216 M 4278.4139 3279.4016 L 4278.0039 3279.6016 L 4277.5939 3280.0116 L 4277.3939 3280.4216 L 4277.3939 3281.2416 L 4277.5939 3281.6516 L 4278.0039 3282.0616 L 4278.4139 3282.2616 L 4279.0339 3282.4716 L 4280.0539 3282.4716 L 4280.6639 3282.2616 L 4281.0739 3282.0616 L 4281.4839 3281.6516 L 4281.6939 3281.2416 L 4281.6939 3280.4216 L 4281.4839 3280.0116 L 4281.0739 3279.6016 L 4280.6639 3279.4016 M 4279.8439 3278.0516 L 4279.8439 3274.3716 M 4278.2139 3273.0216 L 4278.0039 3272.6116 L 4277.3939 3271.9916 L 4281.6939 3271.9916 M 4278.2139 3270.6416 L 4278.0039 3270.2316 L 4277.3939 3269.6216 L 4281.6939 3269.6216 M 4278.2139 3268.2716 L 4278.0039 3267.8616 L 4277.3939 3267.2516 L 4281.6939 3267.2516 M 4277.3939 3263.0316 L 4281.6939 3265.0816 M 4277.3939 3265.9016 L 4277.3939 3263.0316 M 4279.8439 3261.6816 L 4279.8439 3258.0016 M 4277.3939 3256.6516 L 4281.6939 3256.6516 M 4277.3939 3256.6516 L 4277.3939 3254.8116 L 4277.5939 3254.2016 L 4277.8039 3253.9916 L 4278.2139 3253.7916 L 4278.6239 3253.7916 L 4279.0339 3253.9916 L 4279.2339 3254.2016 L 4279.4439 3254.8116 M 4279.4439 3256.6516 L 4279.4439 3254.8116 L 4279.6439 3254.2016 L 4279.8439 3253.9916 L 4280.2539 3253.7916 L 4280.8739 3253.7916 L 4281.2839 3253.9916 L 4281.4839 3254.2016 L 4281.6939 3254.8116 L 4281.6939 3256.6516","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M4270.92 3255.98L4270.92 3255.98Q4270.72 3255.98 4270.57 3255.90Q4270.41 3255.82 4270.31 3255.67Q4270.21 3255.52 4270.16 3255.31Q4270.11 3255.10 4270.11 3254.84L4270.11 3254.84Q4270.11 3254.73 4270.12 3254.62Q4270.12 3254.50 4270.14 3254.40Q4270.15 3254.29 4270.17 3254.20Q4270.19 3254.11 4270.21 3254.04L4270.21 3254.04L4270.58 3254.04Q4270.52 3254.20 4270.49 3254.41Q4270.45 3254.61 4270.45 3254.87L4270.45 3254.87Q4270.45 3255.06 4270.48 3255.19Q4270.51 3255.33 4270.57 3255.41Q4270.63 3255.50 4270.71 3255.53Q4270.79 3255.57 4270.90 3255.57L4270.90 3255.57Q4271.02 3255.57 4271.10 3255.51Q4271.18 3255.44 4271.25 3255.34Q4271.31 3255.23 4271.37 3255.10Q4271.42 3254.96 4271.48 3254.82Q4271.53 3254.68 4271.60 3254.55Q4271.67 3254.41 4271.76 3254.31Q4271.85 3254.20 4271.97 3254.14Q4272.10 3254.07 4272.27 3254.07L4272.27 3254.07Q4272.41 3254.07 4272.56 3254.13Q4272.70 3254.19 4272.81 3254.32Q4272.92 3254.45 4272.99 3254.66Q4273.06 3254.86 4273.06 3255.14L4273.06 3255.14Q4273.06 3255.21 4273.05 3255.30Q4273.04 3255.38 4273.03 3255.47Q4273.02 3255.56 4273.00 3255.64Q4272.99 3255.72 4272.97 3255.80L4272.97 3255.80L4272.62 3255.80Q4272.67 3255.63 4272.69 3255.46Q4272.72 3255.29 4272.72 3255.13L4272.72 3255.13Q4272.72 3254.80 4272.61 3254.64Q4272.49 3254.48 4272.31 3254.48L4272.31 3254.48Q4272.19 3254.48 4272.11 3254.54Q4272.02 3254.61 4271.96 3254.71Q4271.89 3254.82 4271.84 3254.95Q4271.78 3255.09 4271.73 3255.23Q4271.67 3255.37 4271.60 3255.51Q4271.53 3255.64 4271.44 3255.75Q4271.35 3255.85 4271.22 3255.92Q4271.10 3255.98 4270.92 3255.98ZM4273.02 3258.29L4273.02 3258.64L4270.15 3258.45L4270.15 3257.94L4271.17 3257.58L4271.50 3257.49L4271.14 3257.38L4270.15 3257.05L4270.15 3256.56L4273.02 3256.36L4273.02 3256.73L4271.06 3256.85L4270.53 3256.88L4270.98 3257.02L4272.05 3257.36L4272.05 3257.63L4270.91 3258.03L4270.53 3258.17L4270.92 3258.18L4273.02 3258.29ZM4271.12 3261.10L4270.78 3261.10L4270.78 3260.61L4270.15 3260.61L4270.15 3260.22L4270.78 3260.22L4270.78 3258.83L4271.12 3258.83L4273.02 3260.06L4273.02 3260.61L4271.12 3260.61L4271.12 3261.10ZM4271.12 3260.22L4272.65 3260.22L4271.12 3259.22L4271.12 3260.22Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4239.0505,3175.6378 4236.7822,3175.6378 4236.7822,3206.6378"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4256.767,3175.6378 4247.7973,3175.6378"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4265.5138,3206.6378 4267.7822,3206.6378 4267.7822,3175.6378 4265.5138,3175.6378"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4247.7973,3206.6378 4256.767,3206.6378"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4236.7822,3206.6378 4239.0505,3206.6378"},{"type":"circle","_svgpath":"M 4252.282, 3191.137 m -10.259, 0 a 10.259,10.259 0 1,0 20.518,0 a 10.259,10.259 0 1,0 -20.518,0","start":[4252.282,3191.137],"radius":10.259,"width":"1","net":""},{"type":"text","svgpath":"M 4222.8918 3190.0416 L 4227.1818 3190.0416 M 4222.8918 3191.4716 L 4222.8918 3188.6116 M 4223.9118 3184.1916 L 4223.5018 3184.4016 L 4223.0918 3184.8116 L 4222.8918 3185.2216 L 4222.8918 3186.0316 L 4223.0918 3186.4416 L 4223.5018 3186.8516 L 4223.9118 3187.0616 L 4224.5218 3187.2616 L 4225.5518 3187.2616 L 4226.1618 3187.0616 L 4226.5718 3186.8516 L 4226.9818 3186.4416 L 4227.1818 3186.0316 L 4227.1818 3185.2216 L 4226.9818 3184.8116 L 4226.5718 3184.4016 L 4226.1618 3184.1916 M 4225.3418 3182.8416 L 4225.3418 3179.1616 M 4223.7018 3177.8116 L 4223.5018 3177.4016 L 4222.8918 3176.7916 L 4227.1818 3176.7916 M 4223.7018 3175.4416 L 4223.5018 3175.0316 L 4222.8918 3174.4216 L 4227.1818 3174.4216 M 4223.7018 3173.0716 L 4223.5018 3172.6616 L 4222.8918 3172.0416 L 4227.1818 3172.0416 M 4222.8918 3167.8316 L 4227.1818 3169.8716 M 4222.8918 3170.6916 L 4222.8918 3167.8316 M 4225.3418 3166.4816 L 4225.3418 3162.8016 M 4222.8918 3161.4516 L 4227.1818 3161.4516 M 4222.8918 3161.4516 L 4222.8918 3159.6116 L 4223.0918 3158.9916 L 4223.3018 3158.7916 L 4223.7018 3158.5816 L 4224.1118 3158.5816 L 4224.5218 3158.7916 L 4224.7318 3158.9916 L 4224.9318 3159.6116 M 4224.9318 3161.4516 L 4224.9318 3159.6116 L 4225.1418 3158.9916 L 4225.3418 3158.7916 L 4225.7518 3158.5816 L 4226.3618 3158.5816 L 4226.7718 3158.7916 L 4226.9818 3158.9916 L 4227.1818 3159.6116 L 4227.1818 3161.4516","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M4233.65 3189.29L4233.65 3189.29Q4233.86 3189.29 4234.01 3189.37Q4234.16 3189.45 4234.27 3189.60Q4234.37 3189.75 4234.42 3189.96Q4234.47 3190.17 4234.47 3190.42L4234.47 3190.42Q4234.47 3190.54 4234.46 3190.65Q4234.45 3190.76 4234.44 3190.87Q4234.42 3190.97 4234.41 3191.07Q4234.39 3191.16 4234.37 3191.23L4234.37 3191.23L4233.99 3191.23Q4234.05 3191.07 4234.09 3190.86Q4234.12 3190.66 4234.12 3190.40L4234.12 3190.40Q4234.12 3190.21 4234.09 3190.07Q4234.06 3189.94 4234.01 3189.86Q4233.95 3189.77 4233.86 3189.73Q4233.78 3189.69 4233.67 3189.69L4233.67 3189.69Q4233.56 3189.69 4233.47 3189.76Q4233.39 3189.82 4233.33 3189.93Q4233.26 3190.03 4233.21 3190.17Q4233.15 3190.31 4233.10 3190.45Q4233.04 3190.59 4232.97 3190.72Q4232.91 3190.86 4232.82 3190.96Q4232.72 3191.07 4232.60 3191.13Q4232.48 3191.20 4232.31 3191.20L4232.31 3191.20Q4232.16 3191.20 4232.02 3191.14Q4231.88 3191.07 4231.76 3190.94Q4231.65 3190.82 4231.59 3190.61Q4231.52 3190.41 4231.52 3190.13L4231.52 3190.13Q4231.52 3190.05 4231.52 3189.97Q4231.53 3189.89 4231.54 3189.80Q4231.55 3189.71 4231.57 3189.63Q4231.59 3189.54 4231.60 3189.47L4231.60 3189.47L4231.95 3189.47Q4231.91 3189.64 4231.88 3189.81Q4231.86 3189.98 4231.86 3190.14L4231.86 3190.14Q4231.86 3190.47 4231.97 3190.63Q4232.08 3190.79 4232.27 3190.79L4232.27 3190.79Q4232.39 3190.79 4232.47 3190.72Q4232.55 3190.66 4232.62 3190.55Q4232.68 3190.45 4232.74 3190.31Q4232.79 3190.18 4232.85 3190.04Q4232.91 3189.90 4232.97 3189.76Q4233.04 3189.63 4233.14 3189.52Q4233.23 3189.42 4233.35 3189.35Q4233.48 3189.29 4233.65 3189.29ZM4231.56 3186.98L4231.56 3186.63L4234.43 3186.82L4234.43 3187.33L4233.41 3187.68L4233.08 3187.78L4233.43 3187.89L4234.43 3188.22L4234.43 3188.71L4231.56 3188.90L4231.56 3188.53L4233.51 3188.42L4234.05 3188.39L4233.59 3188.25L4232.53 3187.90L4232.53 3187.63L4233.67 3187.23L4234.05 3187.10L4233.65 3187.09L4231.56 3186.98ZM4233.51 3184.39L4233.51 3184.39Q4233.72 3184.39 4233.90 3184.48Q4234.08 3184.57 4234.20 3184.73Q4234.33 3184.89 4234.40 3185.11Q4234.47 3185.33 4234.47 3185.59L4234.47 3185.59Q4234.47 3185.65 4234.47 3185.73Q4234.46 3185.80 4234.46 3185.87Q4234.45 3185.94 4234.44 3186.01Q4234.44 3186.08 4234.43 3186.14L4234.43 3186.14L4234.08 3186.14Q4234.11 3186.02 4234.12 3185.87Q4234.14 3185.71 4234.14 3185.56L4234.14 3185.56Q4234.14 3185.38 4234.09 3185.24Q4234.05 3185.10 4233.98 3185.00Q4233.90 3184.90 4233.79 3184.85Q4233.68 3184.80 4233.54 3184.80L4233.54 3184.80Q4233.27 3184.80 4233.15 3184.99Q4233.02 3185.18 4233.02 3185.54L4233.02 3185.54L4233.02 3186.09L4231.56 3186.09L4231.56 3184.54L4231.89 3184.54L4231.89 3185.73L4232.70 3185.73L4232.70 3185.48Q4232.70 3185.27 4232.73 3185.07Q4232.77 3184.88 4232.87 3184.73Q4232.96 3184.57 4233.12 3184.48Q4233.27 3184.39 4233.51 3184.39Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4205.2882,3235.8643 4205.2882,3238.1326 4236.2882,3238.1326"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4205.2882,3218.1478 4205.2882,3227.1175"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4236.2882,3209.401 4236.2882,3207.1326 4205.2882,3207.1326 4205.2882,3209.401"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4236.2882,3227.1175 4236.2882,3218.1478"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4236.2882,3238.1326 4236.2882,3235.8643"},{"type":"circle","_svgpath":"M 4220.788, 3222.633 m -10.259, 0 a 10.259,10.259 0 1,0 20.518,0 a 10.259,10.259 0 1,0 -20.518,0","start":[4220.788,3222.633],"radius":10.259,"width":"1","net":""},{"type":"text","svgpath":"M 4189.67 3247.7339 L 4189.67 3252.0339 M 4188.24 3247.7339 L 4191.1 3247.7339 M 4195.52 3248.7539 L 4195.31 3248.3539 L 4194.9 3247.9439 L 4194.49 3247.7339 L 4193.68 3247.7339 L 4193.27 3247.9439 L 4192.86 3248.3539 L 4192.65 3248.7539 L 4192.45 3249.3739 L 4192.45 3250.3939 L 4192.65 3251.0039 L 4192.86 3251.4139 L 4193.27 3251.8239 L 4193.68 3252.0339 L 4194.49 3252.0339 L 4194.9 3251.8239 L 4195.31 3251.4139 L 4195.52 3251.0039 M 4196.87 3250.1939 L 4200.55 3250.1939 M 4201.9 3248.5539 L 4202.31 3248.3539 L 4202.92 3247.7339 L 4202.92 3252.0339 M 4204.27 3248.5539 L 4204.68 3248.3539 L 4205.29 3247.7339 L 4205.29 3252.0339 M 4206.64 3248.5539 L 4207.05 3248.3539 L 4207.67 3247.7339 L 4207.67 3252.0339 M 4211.88 3247.7339 L 4209.84 3252.0339 M 4209.02 3247.7339 L 4211.88 3247.7339 M 4213.23 3250.1939 L 4216.91 3250.1939 M 4218.26 3247.7339 L 4218.26 3252.0339 M 4218.26 3247.7339 L 4220.1 3247.7339 L 4220.72 3247.9439 L 4220.92 3248.1439 L 4221.13 3248.5539 L 4221.13 3248.9639 L 4220.92 3249.3739 L 4220.72 3249.5739 L 4220.1 3249.7839 M 4218.26 3249.7839 L 4220.1 3249.7839 L 4220.72 3249.9839 L 4220.92 3250.1939 L 4221.13 3250.6039 L 4221.13 3251.2139 L 4220.92 3251.6239 L 4220.72 3251.8239 L 4220.1 3252.0339 L 4218.26 3252.0339","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M4218.93 3241.26L4218.93 3241.26Q4218.93 3241.06 4219.02 3240.91Q4219.10 3240.75 4219.25 3240.65Q4219.40 3240.55 4219.61 3240.50Q4219.82 3240.45 4220.07 3240.45L4220.07 3240.45Q4220.19 3240.45 4220.30 3240.46Q4220.41 3240.46 4220.52 3240.48Q4220.62 3240.49 4220.71 3240.51Q4220.81 3240.53 4220.88 3240.55L4220.88 3240.55L4220.88 3240.92Q4220.72 3240.86 4220.51 3240.83Q4220.31 3240.79 4220.04 3240.79L4220.04 3240.79Q4219.85 3240.79 4219.72 3240.82Q4219.59 3240.85 4219.50 3240.91Q4219.42 3240.97 4219.38 3241.05Q4219.34 3241.14 4219.34 3241.24L4219.34 3241.24Q4219.34 3241.36 4219.41 3241.44Q4219.47 3241.52 4219.58 3241.59Q4219.68 3241.65 4219.82 3241.71Q4219.95 3241.76 4220.09 3241.82Q4220.23 3241.88 4220.37 3241.94Q4220.51 3242.01 4220.61 3242.10Q4220.72 3242.19 4220.78 3242.32Q4220.85 3242.44 4220.85 3242.61L4220.85 3242.61Q4220.85 3242.75 4220.78 3242.90Q4220.72 3243.04 4220.59 3243.15Q4220.46 3243.26 4220.26 3243.33Q4220.06 3243.40 4219.78 3243.40L4219.78 3243.40Q4219.70 3243.40 4219.62 3243.39Q4219.53 3243.39 4219.45 3243.37Q4219.36 3243.36 4219.28 3243.35Q4219.19 3243.33 4219.12 3243.31L4219.12 3243.31L4219.12 3242.96Q4219.29 3243.01 4219.46 3243.03Q4219.63 3243.06 4219.78 3243.06L4219.78 3243.06Q4220.12 3243.06 4220.28 3242.95Q4220.44 3242.84 4220.44 3242.65L4220.44 3242.65Q4220.44 3242.53 4220.37 3242.45Q4220.31 3242.36 4220.20 3242.30Q4220.10 3242.23 4219.96 3242.18Q4219.83 3242.12 4219.69 3242.07Q4219.54 3242.01 4219.41 3241.94Q4219.27 3241.87 4219.17 3241.78Q4219.06 3241.69 4219.00 3241.56Q4218.93 3241.44 4218.93 3241.26ZM4216.62 3243.36L4216.28 3243.36L4216.47 3240.49L4216.98 3240.49L4217.33 3241.51L4217.43 3241.84L4217.53 3241.48L4217.86 3240.49L4218.35 3240.49L4218.55 3243.36L4218.18 3243.36L4218.07 3241.41L4218.04 3240.87L4217.90 3241.32L4217.55 3242.39L4217.28 3242.39L4216.88 3241.25L4216.75 3240.87L4216.74 3241.26L4216.62 3243.36ZM4213.93 3241.40L4213.93 3241.40Q4213.93 3241.20 4214.00 3241.03Q4214.07 3240.85 4214.20 3240.72Q4214.33 3240.59 4214.52 3240.52Q4214.70 3240.45 4214.93 3240.45L4214.93 3240.45Q4215.17 3240.45 4215.35 3240.52Q4215.53 3240.60 4215.66 3240.76Q4215.78 3240.91 4215.84 3241.15Q4215.91 3241.39 4215.91 3241.72L4215.91 3241.72Q4215.91 3241.94 4215.88 3242.15Q4215.85 3242.35 4215.78 3242.53Q4215.72 3242.72 4215.61 3242.87Q4215.50 3243.02 4215.33 3243.13Q4215.17 3243.24 4214.95 3243.30Q4214.73 3243.36 4214.43 3243.36L4214.43 3243.36L4214.15 3243.36L4214.15 3243.02L4214.46 3243.02Q4214.72 3243.02 4214.90 3242.96Q4215.09 3242.90 4215.22 3242.79Q4215.35 3242.68 4215.42 3242.52Q4215.48 3242.36 4215.50 3242.17L4215.50 3242.17L4215.51 3242.08Q4215.37 3242.16 4215.19 3242.21Q4215.01 3242.26 4214.80 3242.26L4214.80 3242.26Q4214.58 3242.26 4214.42 3242.19Q4214.25 3242.13 4214.15 3242.02Q4214.04 3241.90 4213.98 3241.74Q4213.93 3241.59 4213.93 3241.40ZM4214.33 3241.37L4214.33 3241.37Q4214.33 3241.50 4214.36 3241.61Q4214.39 3241.72 4214.46 3241.79Q4214.53 3241.86 4214.63 3241.91Q4214.74 3241.95 4214.88 3241.95L4214.88 3241.95Q4214.96 3241.95 4215.05 3241.93Q4215.14 3241.92 4215.22 3241.89Q4215.30 3241.86 4215.37 3241.83Q4215.45 3241.79 4215.51 3241.75L4215.51 3241.75Q4215.51 3241.47 4215.47 3241.28Q4215.43 3241.09 4215.35 3240.97Q4215.28 3240.86 4215.16 3240.81Q4215.05 3240.76 4214.90 3240.76L4214.90 3240.76Q4214.77 3240.76 4214.67 3240.80Q4214.56 3240.84 4214.49 3240.92Q4214.41 3241.00 4214.37 3241.11Q4214.33 3241.23 4214.33 3241.37Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1}],"B":[{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4222.3618,3317.9096 4222.3618,3304.5237 4216.0626,3304.5237"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4222.3618,3321.8466 4222.3618,3320.2718"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4222.3618,3325.7836 4222.3618,3324.2088"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4222.3618,3329.7206 4222.3618,3328.1458"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4222.3618,3333.6576 4222.3618,3332.0828"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4222.3618,3337.5946 4222.3618,3336.0198"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4222.3618,3341.5316 4222.3618,3339.9568"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4222.3618,3345.4686 4222.3618,3343.8938"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4216.0626,3361.2167 4222.3618,3361.2167 4222.3618,3348.6182"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4205.8264,3304.5237 4199.5272,3304.5237 4199.5272,3361.2167 4205.8264,3361.2167"},{"type":"text","svgpath":"M 4195.2057 3322.326 L 4199.5011 3320.6896 M 4195.2057 3322.326 L 4199.5011 3323.9623 M 4198.0693 3321.3032 L 4198.0693 3323.3487 M 4195.2057 3325.3123 L 4199.5011 3325.3123 M 4195.2057 3325.3123 L 4195.2057 3327.9714 M 4197.2511 3325.3123 L 4197.2511 3326.9487 M 4195.2057 3330.9578 L 4199.5011 3329.3214 M 4195.2057 3330.9578 L 4199.5011 3332.5941 M 4198.0693 3329.9351 L 4198.0693 3331.9805 M 4195.2057 3335.1714 L 4195.4102 3334.5578 L 4196.0239 3334.1487 L 4197.0466 3333.9441 L 4197.6602 3333.9441 L 4198.683 3334.1487 L 4199.2966 3334.5578 L 4199.5011 3335.1714 L 4199.5011 3335.5805 L 4199.2966 3336.1941 L 4198.683 3336.6032 L 4197.6602 3336.8078 L 4197.0466 3336.8078 L 4196.0239 3336.6032 L 4195.4102 3336.1941 L 4195.2057 3335.5805 L 4195.2057 3335.1714 M 4196.0239 3338.1578 L 4195.8193 3338.5669 L 4195.2057 3339.1805 L 4199.5011 3339.1805 M 4197.6602 3340.5305 L 4197.6602 3344.2123 M 4195.8193 3348.426 L 4195.4102 3348.0169 L 4195.2057 3347.4032 L 4195.2057 3346.5851 L 4195.4102 3345.9714 L 4195.8193 3345.5623 L 4196.2284 3345.5623 L 4196.6375 3345.7669 L 4196.8421 3345.9714 L 4197.0466 3346.3805 L 4197.4557 3347.6078 L 4197.6602 3348.0169 L 4197.8648 3348.2214 L 4198.2739 3348.426 L 4198.8875 3348.426 L 4199.2966 3348.0169 L 4199.5011 3347.4032 L 4199.5011 3346.5851 L 4199.2966 3345.9714 L 4198.8875 3345.5623 M 4195.2057 3351.0032 L 4195.4102 3350.3896 L 4196.0239 3349.9805 L 4197.0466 3349.776 L 4197.6602 3349.776 L 4198.683 3349.9805 L 4199.2966 3350.3896 L 4199.5011 3351.0032 L 4199.5011 3351.4123 L 4199.2966 3352.026 L 4198.683 3352.4351 L 4197.6602 3352.6396 L 4197.0466 3352.6396 L 4196.0239 3352.4351 L 4195.4102 3352.026 L 4195.2057 3351.4123 L 4195.2057 3351.0032 M 4195.2057 3355.0123 L 4195.4102 3354.3987 L 4195.8193 3354.1941 L 4196.2284 3354.1941 L 4196.6375 3354.3987 L 4196.8421 3354.8078 L 4197.0466 3355.626 L 4197.2511 3356.2396 L 4197.6602 3356.6487 L 4198.0693 3356.8532 L 4198.683 3356.8532 L 4199.0921 3356.6487 L 4199.2966 3356.4441 L 4199.5011 3355.8305 L 4199.5011 3355.0123 L 4199.2966 3354.3987 L 4199.0921 3354.1941 L 4198.683 3353.9896 L 4198.0693 3353.9896 L 4197.6602 3354.1941 L 4197.2511 3354.6032 L 4197.0466 3355.2169 L 4196.8421 3356.0351 L 4196.6375 3356.4441 L 4196.2284 3356.6487 L 4195.8193 3356.6487 L 4195.4102 3356.4441 L 4195.2057 3355.8305 L 4195.2057 3355.0123 M 4195.2057 3358.2032 L 4199.5011 3358.2032 M 4195.2057 3358.2032 L 4195.2057 3360.8623 M 4197.2511 3358.2032 L 4197.2511 3359.8396 M 4196.2284 3365.2805 L 4195.8193 3365.076 L 4195.4102 3364.6669 L 4195.2057 3364.2578 L 4195.2057 3363.4396 L 4195.4102 3363.0305 L 4195.8193 3362.6214 L 4196.2284 3362.4169 L 4196.8421 3362.2123 L 4197.8648 3362.2123 L 4198.4784 3362.4169 L 4198.8875 3362.6214 L 4199.2966 3363.0305 L 4199.5011 3363.4396 L 4199.5011 3364.2578 L 4199.2966 3364.6669 L 4198.8875 3365.076 L 4198.4784 3365.2805 M 4195.2057 3368.2669 L 4199.5011 3366.6305 M 4195.2057 3368.2669 L 4199.5011 3369.9032 M 4198.0693 3367.2441 L 4198.0693 3369.2896 M 4197.6602 3371.2532 L 4197.6602 3374.9351 M 4195.2057 3377.5123 L 4195.4102 3376.8987 L 4196.0239 3376.4896 L 4197.0466 3376.2851 L 4197.6602 3376.2851 L 4198.683 3376.4896 L 4199.2966 3376.8987 L 4199.5011 3377.5123 L 4199.5011 3377.9214 L 4199.2966 3378.5351 L 4198.683 3378.9441 L 4197.6602 3379.1487 L 4197.0466 3379.1487 L 4196.0239 3378.9441 L 4195.4102 3378.5351 L 4195.2057 3377.9214 L 4195.2057 3377.5123 M 4195.2057 3381.726 L 4195.4102 3381.1123 L 4196.0239 3380.7032 L 4197.0466 3380.4987 L 4197.6602 3380.4987 L 4198.683 3380.7032 L 4199.2966 3381.1123 L 4199.5011 3381.726 L 4199.5011 3382.1351 L 4199.2966 3382.7487 L 4198.683 3383.1578 L 4197.6602 3383.3623 L 4197.0466 3383.3623 L 4196.0239 3383.1578 L 4195.4102 3382.7487 L 4195.2057 3382.1351 L 4195.2057 3381.726","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M 4207.3484 3364.0344 L 4207.3484 3364.3644 L 4208.5684 3364.3644 L 4208.5684 3365.2944 L 4207.4184 3365.2944 L 4207.4184 3365.6244 L 4208.5684 3365.6244 L 4208.5684 3366.9044 L 4208.9684 3366.9044 L 4208.9684 3364.0344 L 4207.3484 3364.0344 Z  M 4204.7184 3364.9044 L 4204.7184 3364.9044 Q 4204.7184 3365.0844 4204.7784 3365.2544 Q 4204.8484 3365.4344 4204.9884 3365.5644 Q 4205.1284 3365.7044 4205.3384 3365.7844 Q 4205.5584 3365.8744 4205.8584 3365.8744 L 4205.8584 3365.8744 L 4206.2084 3365.8744 L 4206.2084 3366.9044 L 4206.5984 3366.9044 L 4206.5984 3364.0344 L 4205.7884 3364.0344 Q 4205.5784 3364.0344 4205.3884 3364.0744 Q 4205.1884 3364.1244 4205.0384 3364.2344 Q 4204.8884 3364.3344 4204.8084 3364.5044 Q 4204.7184 3364.6744 4204.7184 3364.9044 Z  M 4205.1184 3364.9244 L 4205.1184 3364.9244 Q 4205.1184 3364.6544 4205.3084 3364.5044 Q 4205.4884 3364.3544 4205.8084 3364.3544 L 4205.8084 3364.3544 L 4206.2084 3364.3544 L 4206.2084 3365.5344 L 4205.8484 3365.5344 Q 4205.4984 3365.5344 4205.3084 3365.3844 Q 4205.1184 3365.2344 4205.1184 3364.9244 Z  M 4202.2884 3366.4244 L 4202.2884 3366.7944 Q 4202.6384 3366.9344 4203.0084 3366.9344 L 4203.0084 3366.9344 Q 4203.6184 3366.9344 4203.9484 3366.5744 Q 4204.2684 3366.2144 4204.2684 3365.4944 L 4204.2684 3365.4944 Q 4204.2684 3365.1544 4204.1784 3364.8744 Q 4204.0884 3364.5944 4203.9284 3364.4044 Q 4203.7584 3364.2044 4203.5184 3364.1044 Q 4203.2884 3363.9944 4202.9884 3363.9944 L 4202.9884 3363.9944 Q 4202.7884 3363.9944 4202.6184 3364.0244 Q 4202.4484 3364.0644 4202.2884 3364.1344 L 4202.2884 3364.1344 L 4202.2884 3364.5144 Q 4202.4484 3364.4344 4202.6084 3364.3844 Q 4202.7784 3364.3444 4202.9784 3364.3444 L 4202.9784 3364.3444 Q 4203.1784 3364.3444 4203.3384 3364.4144 Q 4203.5084 3364.4944 4203.6184 3364.6344 Q 4203.7384 3364.7844 4203.7984 3364.9844 Q 4203.8584 3365.1944 4203.8584 3365.4644 L 4203.8584 3365.4644 Q 4203.8584 3366.0244 4203.6284 3366.3044 Q 4203.4084 3366.5844 4202.9684 3366.5844 L 4202.9684 3366.5844 Q 4202.7784 3366.5844 4202.6184 3366.5444 Q 4202.4484 3366.5044 4202.2884 3366.4244 L 4202.2884 3366.4244 Z  M 4199.8084 3366.5444 L 4199.8084 3366.9044 L 4201.6184 3366.9044 L 4201.6184 3366.5444 L 4200.8784 3366.5444 L 4200.8784 3364.4544 L 4201.5684 3364.8244 L 4201.7084 3364.4944 L 4200.7884 3364.0144 L 4200.4484 3364.0144 L 4200.4484 3366.5444 L 4199.8084 3366.5444 Z ","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4270.3941,3154.8785 4273.5438,3154.8785"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4269.1742,3150.5094 4269.1742,3153.6589"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4274.7634,3150.5094 4274.7634,3153.6589"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4269.1513,3148.2421 4269.1513,3145.0925"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4270.3711,3143.8727 4273.5206,3143.8727"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4274.7403,3148.2421 4274.7403,3145.0925"},{"type":"arc","width":1,"svgpath":"M 4270.3711 3143.8725 A 1.2198 1.2198 0 0 0 4269.1513 3145.0923","net":""},{"type":"arc","width":1,"svgpath":"M 4274.7405 3145.0923 A 1.2198 1.2198 0 0 0 4273.5206 3143.8725","net":""},{"type":"arc","width":1,"svgpath":"M 4269.1742 3153.6587 A 1.2198 1.2198 0 0 0 4270.3941 3154.8785","net":""},{"type":"arc","width":1,"svgpath":"M 4273.5436 3154.8785 A 1.2198 1.2198 0 0 0 4274.7634 3153.6587","net":""},{"type":"text","svgpath":"M 4258.6828 3148.6093 L 4258.4782 3149.0184 L 4257.8646 3149.632 L 4262.16 3149.632 M 4257.8646 3152.2093 L 4258.0691 3151.5957 L 4258.6828 3151.1866 L 4259.7055 3150.982 L 4260.3191 3150.982 L 4261.3419 3151.1866 L 4261.9555 3151.5957 L 4262.16 3152.2093 L 4262.16 3152.6184 L 4261.9555 3153.232 L 4261.3419 3153.6411 L 4260.3191 3153.8457 L 4259.7055 3153.8457 L 4258.6828 3153.6411 L 4258.0691 3153.232 L 4257.8646 3152.6184 L 4257.8646 3152.2093 M 4259.2964 3155.1957 L 4262.16 3155.1957 M 4260.1146 3155.1957 L 4259.501 3155.8093 L 4259.2964 3156.2184 L 4259.2964 3156.832 L 4259.501 3157.2411 L 4260.1146 3157.4457 L 4262.16 3157.4457 M 4257.8646 3158.7957 L 4262.16 3158.7957 M 4257.8646 3158.7957 L 4257.8646 3161.4548 M 4259.91 3158.7957 L 4259.91 3160.432","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M4272.35 3159.49L4272.35 3159.86Q4272.70 3160.00 4273.08 3160.00L4273.08 3160.00Q4273.69 3160.00 4274.01 3159.64Q4274.34 3159.28 4274.34 3158.56L4274.34 3158.56Q4274.34 3158.22 4274.25 3157.94Q4274.16 3157.66 4273.99 3157.47Q4273.82 3157.27 4273.59 3157.17Q4273.35 3157.06 4273.05 3157.06L4273.05 3157.06Q4272.85 3157.06 4272.68 3157.09Q4272.51 3157.13 4272.35 3157.20L4272.35 3157.20L4272.35 3157.58Q4272.51 3157.50 4272.68 3157.45Q4272.84 3157.41 4273.04 3157.41L4273.04 3157.41Q4273.24 3157.41 4273.41 3157.48Q4273.57 3157.56 4273.69 3157.70Q4273.80 3157.85 4273.86 3158.06Q4273.92 3158.26 4273.92 3158.53L4273.92 3158.53Q4273.92 3159.09 4273.70 3159.37Q4273.47 3159.65 4273.03 3159.65L4273.03 3159.65Q4272.85 3159.65 4272.68 3159.61Q4272.51 3159.57 4272.35 3159.49L4272.35 3159.49ZM4269.88 3159.61L4269.88 3159.97L4271.68 3159.97L4271.68 3159.61L4270.94 3159.61L4270.94 3157.52L4271.63 3157.89L4271.77 3157.56L4270.86 3157.08L4270.52 3157.08L4270.52 3159.61L4269.88 3159.61Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4302.6373,3203.342 4302.6373,3200.1923"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4298.2682,3204.5619 4301.4177,3204.5619"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4298.2682,3198.9727 4301.4177,3198.9727"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4296.0009,3204.5848 4292.8513,3204.5848"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4291.6315,3203.365 4291.6315,3200.2155"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4296.0009,3198.9958 4292.8513,3198.9958"},{"type":"arc","width":1,"svgpath":"M 4291.6313 3203.365 A 1.2198 1.2198 0 0 0 4292.8511 3204.5848","net":""},{"type":"arc","width":1,"svgpath":"M 4292.8511 3198.9956 A 1.2198 1.2198 0 0 0 4291.6313 3200.2155","net":""},{"type":"arc","width":1,"svgpath":"M 4301.4175 3204.5619 A 1.2198 1.2198 0 0 0 4302.6373 3203.342","net":""},{"type":"arc","width":1,"svgpath":"M 4302.6373 3200.1925 A 1.2198 1.2198 0 0 0 4301.4175 3198.9727","net":""},{"type":"text","svgpath":"M 4309.2099 3212.3974 L 4308.8008 3212.1928 L 4308.1872 3211.5792 L 4308.1872 3215.8746 M 4305.6099 3211.5792 L 4306.2235 3211.7837 L 4306.6326 3212.3974 L 4306.8372 3213.4201 L 4306.8372 3214.0337 L 4306.6326 3215.0565 L 4306.2235 3215.6701 L 4305.6099 3215.8746 L 4305.2008 3215.8746 L 4304.5872 3215.6701 L 4304.1781 3215.0565 L 4303.9735 3214.0337 L 4303.9735 3213.4201 L 4304.1781 3212.3974 L 4304.5872 3211.7837 L 4305.2008 3211.5792 L 4305.6099 3211.5792 M 4302.6235 3213.011 L 4302.6235 3215.8746 M 4302.6235 3213.8292 L 4302.0099 3213.2156 L 4301.6008 3213.011 L 4300.9872 3213.011 L 4300.5781 3213.2156 L 4300.3735 3213.8292 L 4300.3735 3215.8746 M 4299.0235 3211.5792 L 4299.0235 3215.8746 M 4299.0235 3211.5792 L 4296.3644 3211.5792 M 4299.0235 3213.6246 L 4297.3872 3213.6246","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M4306.00 3202.47L4306.00 3202.84Q4306.35 3202.98 4306.73 3202.98L4306.73 3202.98Q4307.33 3202.98 4307.66 3202.62Q4307.99 3202.26 4307.99 3201.55L4307.99 3201.55Q4307.99 3201.20 4307.90 3200.92Q4307.81 3200.64 4307.64 3200.45Q4307.47 3200.25 4307.23 3200.15Q4307.00 3200.04 4306.70 3200.04L4306.70 3200.04Q4306.50 3200.04 4306.33 3200.08Q4306.16 3200.11 4306.00 3200.18L4306.00 3200.18L4306.00 3200.57Q4306.16 3200.48 4306.33 3200.43Q4306.49 3200.39 4306.69 3200.39L4306.69 3200.39Q4306.89 3200.39 4307.06 3200.47Q4307.22 3200.54 4307.33 3200.68Q4307.45 3200.83 4307.51 3201.04Q4307.57 3201.24 4307.57 3201.51L4307.57 3201.51Q4307.57 3202.07 4307.34 3202.35Q4307.12 3202.63 4306.68 3202.63L4306.68 3202.63Q4306.50 3202.63 4306.33 3202.59Q4306.16 3202.55 4306.00 3202.47L4306.00 3202.47ZM4303.50 3202.58L4303.50 3202.95L4305.39 3202.95L4305.39 3202.61L4304.65 3201.87Q4304.47 3201.69 4304.35 3201.56Q4304.24 3201.42 4304.17 3201.32Q4304.11 3201.21 4304.09 3201.11Q4304.07 3201.01 4304.07 3200.90L4304.07 3200.90Q4304.07 3200.80 4304.09 3200.70Q4304.12 3200.60 4304.18 3200.53Q4304.24 3200.46 4304.34 3200.42Q4304.43 3200.38 4304.56 3200.38L4304.56 3200.38Q4304.75 3200.38 4304.89 3200.46Q4305.04 3200.54 4305.17 3200.67L4305.17 3200.67L4305.38 3200.42Q4305.22 3200.24 4305.01 3200.14Q4304.79 3200.04 4304.51 3200.04L4304.51 3200.04Q4304.32 3200.04 4304.16 3200.09Q4304.01 3200.15 4303.89 3200.26Q4303.78 3200.37 4303.72 3200.52Q4303.65 3200.68 4303.65 3200.87L4303.65 3200.87Q4303.65 3201.04 4303.70 3201.18Q4303.74 3201.32 4303.83 3201.46Q4303.92 3201.60 4304.05 3201.75Q4304.19 3201.90 4304.37 3202.08L4304.37 3202.08L4304.89 3202.58L4303.50 3202.58Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4275.5104,3267.5553 4272.3607,3267.5553"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4276.7303,3271.9244 4276.7303,3268.7749"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4271.1411,3271.9244 4271.1411,3268.7749"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4276.7532,3274.1917 4276.7532,3277.3413"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4275.5334,3278.5611 4272.3839,3278.5611"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4271.1642,3274.1917 4271.1642,3277.3413"},{"type":"arc","width":1,"svgpath":"M 4275.5334 3278.5613 A 1.2198 1.2198 0 0 0 4276.7532 3277.3415","net":""},{"type":"arc","width":1,"svgpath":"M 4271.164 3277.3415 A 1.2198 1.2198 0 0 0 4272.3839 3278.5613","net":""},{"type":"arc","width":1,"svgpath":"M 4276.7303 3268.7751 A 1.2198 1.2198 0 0 0 4275.5104 3267.5553","net":""},{"type":"arc","width":1,"svgpath":"M 4272.3609 3267.5553 A 1.2198 1.2198 0 0 0 4271.1411 3268.7751","net":""},{"type":"text","svgpath":"M 4286.0044 3261.1802 L 4285.7998 3261.5893 L 4285.1862 3262.2029 L 4289.4816 3262.2029 M 4285.1862 3264.7802 L 4285.3907 3264.1666 L 4286.0044 3263.7575 L 4287.0271 3263.5529 L 4287.6407 3263.5529 L 4288.6635 3263.7575 L 4289.2771 3264.1666 L 4289.4816 3264.7802 L 4289.4816 3265.1893 L 4289.2771 3265.8029 L 4288.6635 3266.212 L 4287.6407 3266.4166 L 4287.0271 3266.4166 L 4286.0044 3266.212 L 4285.3907 3265.8029 L 4285.1862 3265.1893 L 4285.1862 3264.7802 M 4286.618 3267.7666 L 4289.4816 3267.7666 M 4287.4362 3267.7666 L 4286.8226 3268.3802 L 4286.618 3268.7893 L 4286.618 3269.4029 L 4286.8226 3269.812 L 4287.4362 3270.0166 L 4289.4816 3270.0166 M 4285.1862 3271.3666 L 4289.4816 3271.3666 M 4285.1862 3271.3666 L 4285.1862 3274.0257 M 4287.2316 3271.3666 L 4287.2316 3273.0029","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M4274.11 3265.86L4274.11 3266.23Q4274.46 3266.37 4274.84 3266.37L4274.84 3266.37Q4275.44 3266.37 4275.77 3266.01Q4276.10 3265.64 4276.10 3264.93L4276.10 3264.93Q4276.10 3264.59 4276.01 3264.31Q4275.92 3264.03 4275.75 3263.83Q4275.58 3263.64 4275.35 3263.53Q4275.11 3263.43 4274.81 3263.43L4274.81 3263.43Q4274.61 3263.43 4274.44 3263.46Q4274.27 3263.50 4274.11 3263.57L4274.11 3263.57L4274.11 3263.95Q4274.27 3263.87 4274.44 3263.82Q4274.60 3263.78 4274.80 3263.78L4274.80 3263.78Q4275.00 3263.78 4275.17 3263.85Q4275.33 3263.93 4275.44 3264.07Q4275.56 3264.21 4275.62 3264.42Q4275.68 3264.63 4275.68 3264.90L4275.68 3264.90Q4275.68 3265.45 4275.45 3265.74Q4275.23 3266.02 4274.79 3266.02L4274.79 3266.02Q4274.61 3266.02 4274.44 3265.98Q4274.27 3265.93 4274.11 3265.86L4274.11 3265.86ZM4271.66 3265.46L4271.66 3265.46Q4271.66 3265.65 4271.74 3265.82Q4271.82 3265.98 4271.97 3266.11Q4272.13 3266.23 4272.36 3266.30Q4272.59 3266.37 4272.90 3266.37L4272.90 3266.37Q4273.07 3266.37 4273.21 3266.36Q4273.35 3266.35 4273.46 3266.33L4273.46 3266.33L4273.46 3265.99Q4273.33 3266.02 4273.18 3266.03Q4273.02 3266.04 4272.87 3266.04L4272.87 3266.04Q4272.65 3266.04 4272.50 3266.00Q4272.35 3265.97 4272.25 3265.89Q4272.15 3265.82 4272.11 3265.72Q4272.06 3265.61 4272.06 3265.48L4272.06 3265.48Q4272.06 3265.37 4272.12 3265.28Q4272.17 3265.19 4272.27 3265.13Q4272.36 3265.07 4272.49 3265.04Q4272.63 3265.01 4272.79 3265.01L4272.79 3265.01L4273.11 3265.01L4273.11 3264.70L4272.78 3264.70Q4272.65 3264.70 4272.54 3264.66Q4272.44 3264.63 4272.36 3264.57Q4272.29 3264.50 4272.25 3264.41Q4272.21 3264.32 4272.21 3264.20L4272.21 3264.20Q4272.21 3263.97 4272.35 3263.86Q4272.49 3263.76 4272.76 3263.76L4272.76 3263.76Q4272.90 3263.76 4273.06 3263.78Q4273.21 3263.81 4273.39 3263.87L4273.39 3263.87L4273.39 3263.54Q4273.31 3263.51 4273.23 3263.49Q4273.14 3263.47 4273.06 3263.45Q4272.97 3263.44 4272.89 3263.43Q4272.81 3263.42 4272.73 3263.42L4272.73 3263.42Q4272.50 3263.42 4272.33 3263.47Q4272.15 3263.52 4272.04 3263.61Q4271.92 3263.71 4271.86 3263.84Q4271.80 3263.97 4271.80 3264.14L4271.80 3264.14Q4271.80 3264.38 4271.93 3264.55Q4272.06 3264.72 4272.28 3264.81L4272.28 3264.81Q4272.16 3264.83 4272.05 3264.88Q4271.95 3264.94 4271.86 3265.02Q4271.77 3265.10 4271.72 3265.21Q4271.66 3265.33 4271.66 3265.46Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4233.3845,3172.2799 4230.2348,3172.2799"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4234.6044,3176.649 4234.6044,3173.4995"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4229.0152,3176.649 4229.0152,3173.4995"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4234.6273,3178.9163 4234.6273,3182.0659"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4233.4075,3183.2857 4230.258,3183.2857"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4229.0383,3178.9163 4229.0383,3182.0659"},{"type":"arc","width":1,"svgpath":"M 4233.4075 3183.2859 A 1.2198 1.2198 0 0 0 4234.6273 3182.0661","net":""},{"type":"arc","width":1,"svgpath":"M 4229.0381 3182.0661 A 1.2198 1.2198 0 0 0 4230.258 3183.2859","net":""},{"type":"arc","width":1,"svgpath":"M 4234.6044 3173.4997 A 1.2198 1.2198 0 0 0 4233.3845 3172.2799","net":""},{"type":"arc","width":1,"svgpath":"M 4230.235 3172.2799 A 1.2198 1.2198 0 0 0 4229.0152 3173.4997","net":""},{"type":"text","svgpath":"M 4243.8692 3165.9089 L 4243.6646 3166.318 L 4243.051 3166.9316 L 4247.3464 3166.9316 M 4243.051 3169.5089 L 4243.2555 3168.8953 L 4243.8692 3168.4862 L 4244.8919 3168.2816 L 4245.5055 3168.2816 L 4246.5283 3168.4862 L 4247.1419 3168.8953 L 4247.3464 3169.5089 L 4247.3464 3169.918 L 4247.1419 3170.5316 L 4246.5283 3170.9407 L 4245.5055 3171.1453 L 4244.8919 3171.1453 L 4243.8692 3170.9407 L 4243.2555 3170.5316 L 4243.051 3169.918 L 4243.051 3169.5089 M 4244.4828 3172.4953 L 4247.3464 3172.4953 M 4245.301 3172.4953 L 4244.6874 3173.1089 L 4244.4828 3173.518 L 4244.4828 3174.1316 L 4244.6874 3174.5407 L 4245.301 3174.7453 L 4247.3464 3174.7453 M 4243.051 3176.0953 L 4247.3464 3176.0953 M 4243.051 3176.0953 L 4243.051 3178.7544 M 4245.0964 3176.0953 L 4245.0964 3177.7316","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M4232.38 3187.51L4232.38 3187.88Q4232.73 3188.02 4233.10 3188.02L4233.10 3188.02Q4233.71 3188.02 4234.04 3187.66Q4234.36 3187.30 4234.36 3186.58L4234.36 3186.58Q4234.36 3186.24 4234.27 3185.96Q4234.18 3185.68 4234.02 3185.49Q4233.85 3185.29 4233.61 3185.19Q4233.38 3185.08 4233.08 3185.08L4233.08 3185.08Q4232.88 3185.08 4232.71 3185.12Q4232.54 3185.15 4232.38 3185.22L4232.38 3185.22L4232.38 3185.60Q4232.54 3185.52 4232.70 3185.47Q4232.87 3185.43 4233.07 3185.43L4233.07 3185.43Q4233.27 3185.43 4233.43 3185.50Q4233.60 3185.58 4233.71 3185.72Q4233.83 3185.87 4233.89 3186.08Q4233.95 3186.28 4233.95 3186.55L4233.95 3186.55Q4233.95 3187.11 4233.72 3187.39Q4233.50 3187.67 4233.06 3187.67L4233.06 3187.67Q4232.87 3187.67 4232.71 3187.63Q4232.54 3187.59 4232.38 3187.51L4232.38 3187.51ZM4229.73 3187.02L4229.73 3187.35L4230.22 3187.35L4230.22 3187.99L4230.62 3187.99L4230.62 3187.35L4232.00 3187.35L4232.00 3187.02L4230.77 3185.12L4230.22 3185.12L4230.22 3187.02L4229.73 3187.02ZM4230.62 3187.02L4230.62 3185.49L4231.62 3187.02L4230.62 3187.02Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4201.535,3241.139 4201.535,3244.2887"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4205.9041,3239.9191 4202.7546,3239.9191"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4205.9041,3245.5083 4202.7546,3245.5083"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4208.1714,3239.8962 4211.321,3239.8962"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4212.5408,3241.116 4212.5408,3244.2655"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4208.1714,3245.4852 4211.321,3245.4852"},{"type":"arc","width":1,"svgpath":"M 4212.541 3241.116 A 1.2198 1.2198 0 0 0 4211.3212 3239.8962","net":""},{"type":"arc","width":1,"svgpath":"M 4211.3212 3245.4854 A 1.2198 1.2198 0 0 0 4212.541 3244.2655","net":""},{"type":"arc","width":1,"svgpath":"M 4202.7548 3239.9191 A 1.2198 1.2198 0 0 0 4201.535 3241.139","net":""},{"type":"arc","width":1,"svgpath":"M 4201.535 3244.2885 A 1.2198 1.2198 0 0 0 4202.7548 3245.5083","net":""},{"type":"text","svgpath":"M 4208.0092 3227.9913 L 4207.6001 3227.7867 L 4206.9865 3227.1731 L 4206.9865 3231.4685 M 4204.4092 3227.1731 L 4205.0228 3227.3776 L 4205.4319 3227.9913 L 4205.6365 3229.014 L 4205.6365 3229.6276 L 4205.4319 3230.6504 L 4205.0228 3231.264 L 4204.4092 3231.4685 L 4204.0001 3231.4685 L 4203.3865 3231.264 L 4202.9774 3230.6504 L 4202.7728 3229.6276 L 4202.7728 3229.014 L 4202.9774 3227.9913 L 4203.3865 3227.3776 L 4204.0001 3227.1731 L 4204.4092 3227.1731 M 4201.4228 3228.6049 L 4201.4228 3231.4685 M 4201.4228 3229.4231 L 4200.8092 3228.8095 L 4200.4001 3228.6049 L 4199.7865 3228.6049 L 4199.3774 3228.8095 L 4199.1728 3229.4231 L 4199.1728 3231.4685 M 4197.8228 3227.1731 L 4197.8228 3231.4685 M 4197.8228 3227.1731 L 4195.1637 3227.1731 M 4197.8228 3229.2185 L 4196.1865 3229.2185","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M4216.24 3243.42L4216.24 3243.79Q4216.58 3243.93 4216.96 3243.93L4216.96 3243.93Q4217.57 3243.93 4217.90 3243.57Q4218.22 3243.20 4218.22 3242.49L4218.22 3242.49Q4218.22 3242.14 4218.13 3241.87Q4218.04 3241.59 4217.88 3241.39Q4217.71 3241.20 4217.47 3241.09Q4217.23 3240.99 4216.94 3240.99L4216.94 3240.99Q4216.74 3240.99 4216.57 3241.02Q4216.40 3241.06 4216.24 3241.13L4216.24 3241.13L4216.24 3241.51Q4216.39 3241.42 4216.56 3241.38Q4216.73 3241.33 4216.93 3241.33L4216.93 3241.33Q4217.13 3241.33 4217.29 3241.41Q4217.46 3241.49 4217.57 3241.63Q4217.68 3241.77 4217.75 3241.98Q4217.81 3242.19 4217.81 3242.45L4217.81 3242.45Q4217.81 3243.01 4217.58 3243.30Q4217.35 3243.58 4216.92 3243.58L4216.92 3243.58Q4216.73 3243.58 4216.56 3243.54Q4216.39 3243.49 4216.24 3243.42L4216.24 3243.42ZM4213.81 3242.98L4213.81 3242.98Q4213.81 3243.19 4213.90 3243.36Q4213.99 3243.54 4214.15 3243.67Q4214.32 3243.79 4214.54 3243.86Q4214.76 3243.93 4215.01 3243.93L4215.01 3243.93Q4215.07 3243.93 4215.15 3243.93Q4215.22 3243.93 4215.29 3243.92Q4215.37 3243.92 4215.44 3243.91Q4215.50 3243.90 4215.56 3243.89L4215.56 3243.89L4215.56 3243.55Q4215.44 3243.58 4215.29 3243.59Q4215.14 3243.60 4214.98 3243.60L4214.98 3243.60Q4214.80 3243.60 4214.66 3243.56Q4214.52 3243.52 4214.42 3243.44Q4214.32 3243.36 4214.27 3243.25Q4214.22 3243.14 4214.22 3243.00L4214.22 3243.00Q4214.22 3242.73 4214.41 3242.61Q4214.60 3242.49 4214.96 3242.49L4214.96 3242.49L4215.51 3242.49L4215.51 3241.02L4213.96 3241.02L4213.96 3241.36L4215.15 3241.36L4215.15 3242.16L4214.90 3242.16Q4214.69 3242.16 4214.50 3242.20Q4214.30 3242.24 4214.15 3242.33Q4214.00 3242.42 4213.90 3242.58Q4213.81 3242.74 4213.81 3242.98Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4245.9445,3311.6095 4245.9445,3308.4598"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4241.5754,3312.8294 4244.7249,3312.8294"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4241.5754,3307.2402 4244.7249,3307.2402"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4239.3081,3312.8523 4236.1585,3312.8523"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4234.9387,3311.6325 4234.9387,3308.483"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":1,"svgpath":"M4239.3081,3307.2633 4236.1585,3307.2633"},{"type":"arc","width":1,"svgpath":"M 4234.9385 3311.6325 A 1.2198 1.2198 0 0 0 4236.1583 3312.8523","net":""},{"type":"arc","width":1,"svgpath":"M 4236.1583 3307.2631 A 1.2198 1.2198 0 0 0 4234.9385 3308.483","net":""},{"type":"arc","width":1,"svgpath":"M 4244.7247 3312.8294 A 1.2198 1.2198 0 0 0 4245.9445 3311.6095","net":""},{"type":"arc","width":1,"svgpath":"M 4245.9445 3308.46 A 1.2198 1.2198 0 0 0 4244.7247 3307.2402","net":""},{"type":"text","svgpath":"M 4256.5342 3322.0999 L 4256.1251 3321.8953 L 4255.5115 3321.2817 L 4255.5115 3325.5771 M 4252.9342 3321.2817 L 4253.5478 3321.4862 L 4253.9569 3322.0999 L 4254.1615 3323.1226 L 4254.1615 3323.7362 L 4253.9569 3324.759 L 4253.5478 3325.3726 L 4252.9342 3325.5771 L 4252.5251 3325.5771 L 4251.9115 3325.3726 L 4251.5024 3324.759 L 4251.2978 3323.7362 L 4251.2978 3323.1226 L 4251.5024 3322.0999 L 4251.9115 3321.4862 L 4252.5251 3321.2817 L 4252.9342 3321.2817 M 4249.9478 3322.7135 L 4249.9478 3325.5771 M 4249.9478 3323.5317 L 4249.3342 3322.9181 L 4248.9251 3322.7135 L 4248.3115 3322.7135 L 4247.9024 3322.9181 L 4247.6978 3323.5317 L 4247.6978 3325.5771 M 4246.3478 3321.2817 L 4246.3478 3325.5771 M 4246.3478 3321.2817 L 4243.6887 3321.2817 M 4246.3478 3323.3271 L 4244.7115 3323.3271","useTrueTypeFontRendering":false,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M 4231.5961 3311.1297 L 4231.5961 3311.4997 Q 4231.9361 3311.6497 4232.3161 3311.6497 L 4232.3161 3311.6497 Q 4232.9261 3311.6497 4233.2461 3311.2797 Q 4233.5761 3310.9197 4233.5761 3310.2097 L 4233.5761 3310.2097 Q 4233.5761 3309.8597 4233.4861 3309.5797 Q 4233.3961 3309.2997 4233.2261 3309.1097 Q 4233.0661 3308.9097 4232.8261 3308.8097 Q 4232.5861 3308.6997 4232.2961 3308.6997 L 4232.2961 3308.6997 Q 4232.0961 3308.6997 4231.9261 3308.7397 Q 4231.7461 3308.7697 4231.5961 3308.8397 L 4231.5961 3308.8397 L 4231.5961 3309.2297 Q 4231.7461 3309.1397 4231.9161 3309.0997 Q 4232.0861 3309.0497 4232.2761 3309.0497 L 4232.2761 3309.0497 Q 4232.4861 3309.0497 4232.6461 3309.1297 Q 4232.8061 3309.1997 4232.9261 3309.3497 Q 4233.0361 3309.4897 4233.0961 3309.6997 Q 4233.1661 3309.9097 4233.1661 3310.1697 L 4233.1661 3310.1697 Q 4233.1661 3310.7297 4232.9361 3311.0097 Q 4232.7061 3311.2997 4232.2761 3311.2997 L 4232.2761 3311.2997 Q 4232.0861 3311.2997 4231.9161 3311.2497 Q 4231.7461 3311.2097 4231.5961 3311.1297 L 4231.5961 3311.1297 Z  M 4229.0561 3310.6997 L 4229.0561 3310.6997 Q 4229.0561 3310.8997 4229.1261 3311.0697 Q 4229.1961 3311.2497 4229.3261 3311.3697 Q 4229.4661 3311.4997 4229.6461 3311.5797 Q 4229.8361 3311.6497 4230.0561 3311.6497 L 4230.0561 3311.6497 Q 4230.2961 3311.6497 4230.4761 3311.5697 Q 4230.6661 3311.4997 4230.7861 3311.3397 Q 4230.9061 3311.1797 4230.9661 3310.9397 Q 4231.0361 3310.7097 4231.0361 3310.3797 L 4231.0361 3310.3797 Q 4231.0361 3310.1597 4231.0061 3309.9497 Q 4230.9761 3309.7497 4230.9161 3309.5597 Q 4230.8461 3309.3797 4230.7361 3309.2297 Q 4230.6261 3309.0797 4230.4661 3308.9697 Q 4230.2961 3308.8597 4230.0761 3308.7997 Q 4229.8561 3308.7397 4229.5661 3308.7397 L 4229.5661 3308.7397 L 4229.2761 3308.7397 L 4229.2761 3309.0697 L 4229.5861 3309.0697 Q 4229.8461 3309.0697 4230.0361 3309.1297 Q 4230.2261 3309.1997 4230.3461 3309.3097 Q 4230.4761 3309.4197 4230.5461 3309.5797 Q 4230.6161 3309.7397 4230.6261 3309.9297 L 4230.6261 3309.9297 L 4230.6361 3310.0197 Q 4230.4961 3309.9397 4230.3161 3309.8897 Q 4230.1361 3309.8397 4229.9261 3309.8397 L 4229.9261 3309.8397 Q 4229.7061 3309.8397 4229.5461 3309.9097 Q 4229.3861 3309.9697 4229.2761 3310.0797 Q 4229.1661 3310.1997 4229.1061 3310.3497 Q 4229.0561 3310.5097 4229.0561 3310.6997 Z  M 4229.4561 3310.7297 L 4229.4561 3310.7297 Q 4229.4561 3310.5897 4229.4861 3310.4897 Q 4229.5161 3310.3797 4229.5861 3310.3097 Q 4229.6561 3310.2297 4229.7561 3310.1897 Q 4229.8661 3310.1497 4230.0061 3310.1497 L 4230.0061 3310.1497 Q 4230.0961 3310.1497 4230.1761 3310.1697 Q 4230.2661 3310.1797 4230.3461 3310.2097 Q 4230.4261 3310.2397 4230.5061 3310.2697 Q 4230.5761 3310.3097 4230.6361 3310.3497 L 4230.6361 3310.3497 Q 4230.6361 3310.6297 4230.5961 3310.8197 Q 4230.5561 3311.0097 4230.4861 3311.1297 Q 4230.4061 3311.2397 4230.2861 3311.2897 Q 4230.1761 3311.3397 4230.0261 3311.3397 L 4230.0261 3311.3397 Q 4229.8961 3311.3397 4229.7961 3311.2997 Q 4229.6961 3311.2497 4229.6161 3311.1797 Q 4229.5361 3311.0997 4229.4961 3310.9797 Q 4229.4561 3310.8697 4229.4561 3310.7297 Z ","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4276.0601,3147.728 4276.0601,3143.9529 4281.2617,3143.9529 4281.2617,3147.728"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4276.0601,3151.084 4276.0601,3154.8591 4281.2617,3154.8591 4281.2617,3151.084"},{"type":"text","svgpath":"M 4292.9809 3141.3558 C 4292.7409 3141.3558 4292.5109 3141.3458 4292.2809 3141.3458 L 4290.9009 3141.3458 L 4290.2709 3141.3658 L 4290.2209 3141.3058 L 4290.4609 3140.4058 L 4290.6109 3140.4058 L 4290.5609 3140.9858 L 4292.2809 3140.9858 C 4292.5109 3140.9858 4292.7409 3140.9858 4292.9809 3140.9758 L 4293.0609 3140.3558 L 4293.2009 3140.3558 L 4293.2009 3141.9758 L 4293.0609 3141.9758 Z M 4291.7109 3142.7958 C 4290.6609 3142.7958 4290.3809 3143.0458 4290.3809 3143.3258 C 4290.3809 3143.5958 4290.6609 3143.8458 4291.7109 3143.8458 C 4292.8009 3143.8458 4293.0909 3143.5958 4293.0909 3143.3258 C 4293.0909 3143.0458 4292.8009 3142.7958 4291.7109 3142.7958 Z M 4290.2109 3143.3258 C 4290.2109 3142.8558 4290.6209 3142.4058 4291.7109 3142.4058 C 4292.8409 3142.4058 4293.2609 3142.8558 4293.2609 3143.3258 C 4293.2609 3143.7858 4292.8409 3144.2358 4291.7109 3144.2358 C 4290.6209 3144.2358 4290.2109 3143.7858 4290.2109 3143.3258 Z M 4293.0209 3146.5358 L 4291.8309 3145.7958 L 4291.3209 3146.3058 L 4291.2709 3146.7158 L 4291.1209 3146.7158 L 4291.1209 3145.7058 L 4291.2709 3145.7058 L 4291.3409 3146.0458 L 4292.1609 3145.2558 L 4290.6209 3145.2558 L 4289.9909 3145.2758 L 4289.9609 3145.2158 L 4290.1409 3144.5358 L 4290.2809 3144.5358 L 4290.3109 3144.8958 L 4292.2809 3144.8958 C 4292.5209 3144.8958 4292.7809 3144.8958 4293.0209 3144.8858 L 4293.0609 3144.5458 L 4293.2009 3144.5458 L 4293.2009 3145.6058 L 4293.0609 3145.6058 L 4293.0209 3145.2658 C 4292.8109 3145.2558 4292.5909 3145.2558 4292.3809 3145.2558 L 4292.0809 3145.5458 L 4293.2009 3146.2258 L 4293.2009 3146.8258 L 4293.0609 3146.8258 Z M 4292.4609 3149.6258 L 4292.8909 3149.5158 L 4292.8909 3148.8958 L 4292.8909 3148.8958 C 4292.5709 3149.3558 4292.1009 3149.7058 4291.5309 3149.7058 C 4290.6709 3149.7058 4290.2009 3149.1058 4290.2009 3148.4258 C 4290.2009 3147.7458 4290.6709 3147.1458 4291.5309 3147.1458 C 4292.1009 3147.1458 4292.5709 3147.5058 4292.8909 3147.9558 L 4292.8909 3147.9558 L 4292.8909 3147.3358 L 4292.4609 3147.2258 L 4292.4609 3146.9958 L 4293.2009 3147.0458 L 4293.2009 3148.2158 L 4292.9309 3148.2158 C 4292.6009 3147.8058 4292.0809 3147.5558 4291.5309 3147.5558 C 4290.8809 3147.5558 4290.3909 3147.8758 4290.3909 3148.4258 C 4290.3909 3148.9758 4290.8809 3149.2958 4291.5309 3149.2958 C 4292.0809 3149.2958 4292.6009 3149.0458 4292.9309 3148.6358 L 4293.2009 3148.6358 L 4293.2009 3149.8158 L 4292.4609 3149.8558 Z","useTrueTypeFontRendering":true,"thickness":1,"width":1,"net":"","val":1},{"type":"text","svgpath":"M4279.17 3158.70L4278.71 3159.64L4279.16 3159.64L4279.58 3158.72Q4279.63 3158.62 4279.68 3158.55Q4279.73 3158.48 4279.79 3158.44Q4279.85 3158.40 4279.92 3158.38Q4279.99 3158.36 4280.07 3158.36L4280.07 3158.36L4280.26 3158.36L4280.26 3159.64L4280.65 3159.64L4280.65 3156.77L4279.88 3156.77Q4279.63 3156.77 4279.45 3156.83Q4279.27 3156.88 4279.15 3156.98Q4279.04 3157.08 4278.99 3157.22Q4278.93 3157.36 4278.93 3157.53L4278.93 3157.53Q4278.93 3157.66 4278.97 3157.78Q4279.01 3157.90 4279.09 3158.00Q4279.17 3158.10 4279.28 3158.17Q4279.40 3158.24 4279.55 3158.27L4279.55 3158.27Q4279.43 3158.32 4279.34 3158.42Q4279.26 3158.52 4279.17 3158.70L4279.17 3158.70ZM4279.34 3157.56L4279.34 3157.56Q4279.34 3157.33 4279.48 3157.21Q4279.63 3157.10 4279.89 3157.10L4279.89 3157.10L4280.26 3157.10L4280.26 3158.05L4279.94 3158.05Q4279.80 3158.05 4279.69 3158.02Q4279.58 3157.99 4279.50 3157.92Q4279.43 3157.86 4279.38 3157.77Q4279.34 3157.68 4279.34 3157.56ZM4276.36 3159.29L4276.36 3159.64L4278.16 3159.64L4278.16 3159.29L4277.42 3159.29L4277.42 3157.19L4278.11 3157.56L4278.25 3157.24L4277.34 3156.76L4277.00 3156.76L4277.00 3159.29L4276.36 3159.29Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4295.4868,3197.676 4291.7117,3197.676 4291.7117,3192.4744 4295.4868,3192.4744"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4298.8428,3197.676 4302.6179,3197.676 4302.6179,3192.4744 4298.8428,3192.4744"},{"type":"text","svgpath":"M 4295.9446 3182.9052 C 4295.9446 3182.6652 4295.9446 3182.4352 4295.9446 3182.2052 L 4295.9446 3180.8252 L 4295.9346 3180.1952 L 4295.9946 3180.1452 L 4296.8946 3180.3852 L 4296.8946 3180.5352 L 4296.3046 3180.4852 L 4296.3046 3182.2052 C 4296.3046 3182.4352 4296.3146 3182.6652 4296.3146 3182.9052 L 4296.9446 3182.9852 L 4296.9446 3183.1252 L 4295.3246 3183.1252 L 4295.3246 3182.9852 Z  M 4294.5046 3181.6352 C 4294.5046 3180.5852 4294.2446 3180.3052 4293.9646 3180.3052 C 4293.7046 3180.3052 4293.4446 3180.5852 4293.4446 3181.6352 C 4293.4446 3182.7252 4293.7046 3183.0152 4293.9646 3183.0152 C 4294.2446 3183.0152 4294.5046 3182.7252 4294.5046 3181.6352 Z  M 4293.9646 3180.1352 C 4294.4446 3180.1352 4294.8946 3180.5452 4294.8946 3181.6352 C 4294.8946 3182.7652 4294.4446 3183.1852 4293.9646 3183.1852 C 4293.5046 3183.1852 4293.0546 3182.7652 4293.0546 3181.6352 C 4293.0546 3180.5452 4293.5046 3180.1352 4293.9646 3180.1352 Z  M 4290.7546 3182.9452 L 4291.4946 3181.7552 L 4290.9946 3181.2452 L 4290.5846 3181.1952 L 4290.5846 3181.0452 L 4291.5946 3181.0452 L 4291.5946 3181.1952 L 4291.2446 3181.2652 L 4292.0446 3182.0852 L 4292.0446 3180.5452 L 4292.0246 3179.9152 L 4292.0846 3179.8852 L 4292.7546 3180.0652 L 4292.7546 3180.2052 L 4292.4046 3180.2352 L 4292.4046 3182.2052 C 4292.4046 3182.4452 4292.4046 3182.7052 4292.4046 3182.9452 L 4292.7546 3182.9852 L 4292.7546 3183.1252 L 4291.6846 3183.1252 L 4291.6846 3182.9852 L 4292.0346 3182.9452 C 4292.0346 3182.7352 4292.0446 3182.5152 4292.0446 3182.3052 L 4291.7446 3182.0052 L 4291.0646 3183.1252 L 4290.4746 3183.1252 L 4290.4746 3182.9852 Z  M 4287.6746 3182.3852 L 4287.7746 3182.8152 L 4288.3946 3182.8152 L 4288.3946 3182.8152 C 4287.9446 3182.4952 4287.5846 3182.0252 4287.5846 3181.4552 C 4287.5846 3180.5952 4288.1946 3180.1252 4288.8646 3180.1252 C 4289.5546 3180.1252 4290.1546 3180.5952 4290.1546 3181.4552 C 4290.1546 3182.0252 4289.7946 3182.4952 4289.3446 3182.8152 L 4289.3446 3182.8152 L 4289.9646 3182.8152 L 4290.0646 3182.3852 L 4290.2946 3182.3852 L 4290.2546 3183.1252 L 4289.0846 3183.1252 L 4289.0846 3182.8552 C 4289.4846 3182.5252 4289.7446 3182.0052 4289.7446 3181.4552 C 4289.7446 3180.8052 4289.4246 3180.3152 4288.8646 3180.3152 C 4288.3246 3180.3152 4287.9946 3180.8052 4287.9946 3181.4552 C 4287.9946 3182.0052 4288.2546 3182.5252 4288.6646 3182.8552 L 4288.6646 3183.1252 L 4287.4846 3183.1252 L 4287.4446 3182.3852 Z ","useTrueTypeFontRendering":true,"thickness":1,"width":1,"net":"","val":1},{"type":"text","svgpath":"M4306.33 3195.31L4305.88 3196.26L4306.32 3196.26L4306.75 3195.34Q4306.80 3195.23 4306.85 3195.16Q4306.90 3195.09 4306.96 3195.05Q4307.02 3195.01 4307.08 3195.00Q4307.15 3194.98 4307.24 3194.98L4307.24 3194.98L4307.42 3194.98L4307.42 3196.26L4307.81 3196.26L4307.81 3193.38L4307.05 3193.38Q4306.80 3193.38 4306.62 3193.44Q4306.43 3193.49 4306.32 3193.59Q4306.20 3193.69 4306.15 3193.83Q4306.10 3193.97 4306.10 3194.14L4306.10 3194.14Q4306.10 3194.27 4306.14 3194.39Q4306.18 3194.51 4306.25 3194.61Q4306.33 3194.71 4306.45 3194.78Q4306.56 3194.85 4306.71 3194.89L4306.71 3194.89Q4306.59 3194.93 4306.51 3195.03Q4306.42 3195.14 4306.33 3195.31L4306.33 3195.31ZM4306.51 3194.17L4306.51 3194.17Q4306.51 3193.94 4306.65 3193.83Q4306.79 3193.71 4307.05 3193.71L4307.05 3193.71L4307.42 3193.71L4307.42 3194.66L4307.11 3194.66Q4306.97 3194.66 4306.86 3194.63Q4306.75 3194.60 4306.67 3194.54Q4306.59 3194.47 4306.55 3194.38Q4306.51 3194.29 4306.51 3194.17ZM4303.50 3195.89L4303.50 3196.26L4305.39 3196.26L4305.39 3195.91L4304.65 3195.18Q4304.47 3195.00 4304.35 3194.86Q4304.24 3194.73 4304.17 3194.62Q4304.11 3194.51 4304.09 3194.42Q4304.07 3194.32 4304.07 3194.21L4304.07 3194.21Q4304.07 3194.10 4304.09 3194.01Q4304.12 3193.91 4304.18 3193.84Q4304.24 3193.77 4304.34 3193.73Q4304.43 3193.68 4304.56 3193.68L4304.56 3193.68Q4304.75 3193.68 4304.89 3193.76Q4305.04 3193.85 4305.17 3193.98L4305.17 3193.98L4305.38 3193.72Q4305.22 3193.55 4305.01 3193.45Q4304.79 3193.34 4304.51 3193.34L4304.51 3193.34Q4304.32 3193.34 4304.16 3193.40Q4304.01 3193.46 4303.89 3193.57Q4303.78 3193.67 4303.72 3193.83Q4303.65 3193.99 4303.65 3194.18L4303.65 3194.18Q4303.65 3194.35 4303.70 3194.49Q4303.74 3194.63 4303.83 3194.77Q4303.92 3194.91 4304.05 3195.06Q4304.19 3195.21 4304.37 3195.38L4304.37 3195.38L4304.89 3195.89L4303.50 3195.89Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4283.2302,3274.7058 4283.2302,3278.4809 4278.0286,3278.4809 4278.0286,3274.7058"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4283.2302,3271.3498 4283.2302,3267.5747 4278.0286,3267.5747 4278.0286,3271.3498"},{"type":"text","svgpath":"M 4259.184 3274.6523 C 4259.184 3274.8823 4259.174 3275.1223 4259.174 3275.3523 L 4259.174 3276.7223 L 4259.194 3277.3623 L 4259.134 3277.4023 L 4258.234 3277.1623 L 4258.234 3277.0123 L 4258.814 3277.0723 L 4258.814 3275.3523 C 4258.814 3275.1223 4258.814 3274.8823 4258.814 3274.6523 L 4258.184 3274.5623 L 4258.184 3274.4223 L 4259.804 3274.4223 L 4259.804 3274.5623 Z  M 4260.624 3275.9123 C 4260.624 3276.9623 4260.874 3277.2423 4261.154 3277.2423 C 4261.424 3277.2423 4261.674 3276.9623 4261.674 3275.9123 C 4261.674 3274.8223 4261.424 3274.5423 4261.154 3274.5423 C 4260.874 3274.5423 4260.624 3274.8223 4260.624 3275.9123 Z  M 4261.154 3277.4223 C 4260.684 3277.4223 4260.234 3277.0123 4260.234 3275.9123 C 4260.234 3274.7823 4260.684 3274.3723 4261.154 3274.3723 C 4261.614 3274.3723 4262.074 3274.7823 4262.074 3275.9123 C 4262.074 3277.0123 4261.614 3277.4223 4261.154 3277.4223 Z  M 4264.374 3274.6023 L 4263.634 3275.7923 L 4264.134 3276.3023 L 4264.544 3276.3623 L 4264.544 3276.5023 L 4263.534 3276.5023 L 4263.534 3276.3623 L 4263.874 3276.2823 L 4263.084 3275.4723 L 4263.084 3277.0123 L 4263.104 3277.6323 L 4263.044 3277.6623 L 4262.374 3277.4823 L 4262.374 3277.3523 L 4262.724 3277.3223 L 4262.724 3275.3423 C 4262.724 3275.1123 4262.724 3274.8523 4262.714 3274.6123 L 4262.374 3274.5623 L 4262.374 3274.4223 L 4263.434 3274.4223 L 4263.434 3274.5623 L 4263.094 3274.6123 C 4263.094 3274.8123 4263.084 3275.0423 4263.084 3275.2423 L 4263.374 3275.5423 L 4264.054 3274.4223 L 4264.654 3274.4223 L 4264.654 3274.5623 Z  M 4267.454 3275.1723 L 4267.354 3274.7323 L 4266.734 3274.7323 L 4266.734 3274.7423 C 4267.184 3275.0623 4267.534 3275.5323 4267.534 3276.1023 C 4267.534 3276.9523 4266.934 3277.4223 4266.254 3277.4223 C 4265.574 3277.4223 4264.974 3276.9523 4264.974 3276.1023 C 4264.974 3275.5223 4265.334 3275.0623 4265.784 3274.7423 L 4265.784 3274.7323 L 4265.164 3274.7323 L 4265.054 3275.1723 L 4264.834 3275.1723 L 4264.874 3274.4223 L 4266.044 3274.4223 L 4266.044 3274.6923 C 4265.634 3275.0223 4265.384 3275.5423 4265.384 3276.0923 C 4265.384 3276.7423 4265.704 3277.2323 4266.254 3277.2323 C 4266.804 3277.2323 4267.134 3276.7423 4267.134 3276.0923 C 4267.134 3275.5423 4266.874 3275.0223 4266.464 3274.6923 L 4266.464 3274.4223 L 4267.644 3274.4223 L 4267.684 3275.1723 Z ","useTrueTypeFontRendering":true,"thickness":1,"width":1,"net":"","val":1},{"type":"text","svgpath":"M4281.14 3265.39L4280.68 3266.33L4281.12 3266.33L4281.55 3265.42Q4281.60 3265.31 4281.65 3265.24Q4281.70 3265.17 4281.76 3265.13Q4281.82 3265.09 4281.89 3265.07Q4281.96 3265.06 4282.04 3265.06L4282.04 3265.06L4282.23 3265.06L4282.23 3266.33L4282.62 3266.33L4282.62 3263.46L4281.85 3263.46Q4281.60 3263.46 4281.42 3263.52Q4281.24 3263.57 4281.12 3263.67Q4281.01 3263.77 4280.95 3263.91Q4280.90 3264.05 4280.90 3264.22L4280.90 3264.22Q4280.90 3264.35 4280.94 3264.47Q4280.98 3264.59 4281.06 3264.69Q4281.13 3264.79 4281.25 3264.86Q4281.37 3264.93 4281.52 3264.97L4281.52 3264.97Q4281.39 3265.01 4281.31 3265.11Q4281.22 3265.22 4281.14 3265.39L4281.14 3265.39ZM4281.31 3264.25L4281.31 3264.25Q4281.31 3264.02 4281.45 3263.91Q4281.60 3263.79 4281.86 3263.79L4281.86 3263.79L4282.23 3263.79L4282.23 3264.74L4281.91 3264.74Q4281.77 3264.74 4281.66 3264.71Q4281.55 3264.68 4281.47 3264.62Q4281.39 3264.55 4281.35 3264.46Q4281.31 3264.37 4281.31 3264.25ZM4278.36 3265.46L4278.36 3265.46Q4278.36 3265.65 4278.43 3265.82Q4278.51 3265.98 4278.67 3266.11Q4278.82 3266.23 4279.05 3266.30Q4279.28 3266.37 4279.59 3266.37L4279.59 3266.37Q4279.77 3266.37 4279.90 3266.36Q4280.04 3266.35 4280.16 3266.33L4280.16 3266.33L4280.16 3265.99Q4280.02 3266.02 4279.87 3266.03Q4279.72 3266.04 4279.56 3266.04L4279.56 3266.04Q4279.34 3266.04 4279.19 3266.00Q4279.04 3265.97 4278.94 3265.89Q4278.85 3265.82 4278.80 3265.72Q4278.76 3265.61 4278.76 3265.48L4278.76 3265.48Q4278.76 3265.37 4278.81 3265.28Q4278.86 3265.19 4278.96 3265.13Q4279.05 3265.07 4279.19 3265.04Q4279.32 3265.01 4279.48 3265.01L4279.48 3265.01L4279.81 3265.01L4279.81 3264.70L4279.47 3264.70Q4279.34 3264.70 4279.24 3264.66Q4279.13 3264.63 4279.06 3264.57Q4278.98 3264.50 4278.94 3264.41Q4278.90 3264.32 4278.90 3264.20L4278.90 3264.20Q4278.90 3263.97 4279.04 3263.86Q4279.18 3263.76 4279.45 3263.76L4279.45 3263.76Q4279.60 3263.76 4279.75 3263.78Q4279.90 3263.81 4280.08 3263.87L4280.08 3263.87L4280.08 3263.54Q4280.01 3263.51 4279.92 3263.49Q4279.84 3263.47 4279.75 3263.45Q4279.67 3263.44 4279.58 3263.43Q4279.50 3263.42 4279.42 3263.42L4279.42 3263.42Q4279.19 3263.42 4279.02 3263.47Q4278.85 3263.52 4278.73 3263.61Q4278.61 3263.71 4278.56 3263.84Q4278.50 3263.97 4278.50 3264.14L4278.50 3264.14Q4278.50 3264.38 4278.62 3264.55Q4278.75 3264.72 4278.97 3264.81L4278.97 3264.81Q4278.86 3264.83 4278.75 3264.88Q4278.64 3264.94 4278.55 3265.02Q4278.47 3265.10 4278.41 3265.21Q4278.36 3265.33 4278.36 3265.46Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4227.7185,3179.8241 4227.7185,3183.5992 4222.5169,3183.5992 4222.5169,3179.8241"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4227.7185,3176.4681 4227.7185,3172.693 4222.5169,3172.693 4222.5169,3176.4681"},{"type":"text","svgpath":"M 4203.4279 3181.1062 C 4203.4279 3181.3362 4203.4279 3181.5762 4203.4279 3181.8062 L 4203.4279 3183.1862 L 4203.4379 3183.8162 L 4203.3779 3183.8562 L 4202.4779 3183.6262 L 4202.4779 3183.4662 L 4203.0679 3183.5262 L 4203.0679 3181.8062 C 4203.0679 3181.5762 4203.0579 3181.3362 4203.0579 3181.1062 L 4202.4279 3181.0162 L 4202.4279 3180.8862 L 4204.0479 3180.8862 L 4204.0479 3181.0162 Z  M 4204.8679 3182.3662 C 4204.8679 3183.4262 4205.1279 3183.6962 4205.4079 3183.6962 C 4205.6679 3183.6962 4205.9279 3183.4262 4205.9279 3182.3662 C 4205.9279 3181.2862 4205.6679 3180.9962 4205.4079 3180.9962 C 4205.1279 3180.9962 4204.8679 3181.2762 4204.8679 3182.3662 Z  M 4205.4079 3183.8762 C 4204.9279 3183.8762 4204.4779 3183.4662 4204.4779 3182.3662 C 4204.4779 3181.2362 4204.9279 3180.8262 4205.4079 3180.8262 C 4205.8679 3180.8262 4206.3179 3181.2362 4206.3179 3182.3662 C 4206.3179 3183.4662 4205.8679 3183.8762 4205.4079 3183.8762 Z  M 4208.6179 3181.0562 L 4207.8779 3182.2462 L 4208.3779 3182.7562 L 4208.7879 3182.8162 L 4208.7879 3182.9562 L 4207.7779 3182.9562 L 4207.7779 3182.8162 L 4208.1279 3182.7462 L 4207.3279 3181.9262 L 4207.3279 3183.4662 L 4207.3479 3184.0862 L 4207.2879 3184.1262 L 4206.6179 3183.9362 L 4206.6179 3183.8062 L 4206.9679 3183.7762 L 4206.9679 3181.8062 C 4206.9679 3181.5662 4206.9679 3181.3062 4206.9679 3181.0662 L 4206.6179 3181.0162 L 4206.6179 3180.8862 L 4207.6879 3180.8862 L 4207.6879 3181.0162 L 4207.3379 3181.0662 C 4207.3379 3181.2662 4207.3279 3181.4962 4207.3279 3181.7062 L 4207.6279 3181.9962 L 4208.3079 3180.8862 L 4208.8979 3180.8862 L 4208.8979 3181.0162 Z  M 4211.6979 3181.6262 L 4211.5979 3181.1862 L 4210.9779 3181.1862 L 4210.9779 3181.1962 C 4211.4279 3181.5162 4211.7879 3181.9862 4211.7879 3182.5562 C 4211.7879 3183.4062 4211.1779 3183.8862 4210.5079 3183.8862 C 4209.8179 3183.8862 4209.2179 3183.4062 4209.2179 3182.5562 C 4209.2179 3181.9762 4209.5779 3181.5162 4210.0279 3181.1962 L 4210.0279 3181.1862 L 4209.4079 3181.1862 L 4209.3079 3181.6262 L 4209.0779 3181.6262 L 4209.1179 3180.8862 L 4210.2879 3180.8862 L 4210.2879 3181.1462 C 4209.8879 3181.4862 4209.6279 3181.9962 4209.6279 3182.5462 C 4209.6279 3183.1962 4209.9479 3183.6862 4210.5079 3183.6862 C 4211.0479 3183.6862 4211.3779 3183.1962 4211.3779 3182.5462 C 4211.3779 3181.9962 4211.1179 3181.4862 4210.7079 3181.1462 L 4210.7079 3180.8862 L 4211.8879 3180.8862 L 4211.9279 3181.6262 Z ","useTrueTypeFontRendering":true,"thickness":1,"width":1,"net":"","val":1},{"type":"text","svgpath":"M4226.51 3187.06L4226.06 3188.00L4226.50 3188.00L4226.93 3187.09Q4226.98 3186.98 4227.03 3186.91Q4227.08 3186.84 4227.14 3186.80Q4227.19 3186.76 4227.26 3186.74Q4227.33 3186.72 4227.42 3186.72L4227.42 3186.72L4227.60 3186.72L4227.60 3188.00L4227.99 3188.00L4227.99 3185.13L4227.23 3185.13Q4226.97 3185.13 4226.79 3185.19Q4226.61 3185.24 4226.50 3185.34Q4226.38 3185.44 4226.33 3185.58Q4226.28 3185.72 4226.28 3185.89L4226.28 3185.89Q4226.28 3186.02 4226.32 3186.14Q4226.36 3186.26 4226.43 3186.36Q4226.51 3186.46 4226.63 3186.53Q4226.74 3186.60 4226.89 3186.63L4226.89 3186.63Q4226.77 3186.68 4226.69 3186.78Q4226.60 3186.89 4226.51 3187.06L4226.51 3187.06ZM4226.68 3185.92L4226.68 3185.92Q4226.68 3185.69 4226.83 3185.58Q4226.97 3185.46 4227.23 3185.46L4227.23 3185.46L4227.60 3185.46L4227.60 3186.41L4227.29 3186.41Q4227.15 3186.41 4227.04 3186.38Q4226.93 3186.35 4226.85 3186.28Q4226.77 3186.22 4226.73 3186.13Q4226.68 3186.04 4226.68 3185.92ZM4223.54 3187.03L4223.54 3187.37L4224.03 3187.37L4224.03 3188.00L4224.42 3188.00L4224.42 3187.37L4225.80 3187.37L4225.80 3187.03L4224.58 3185.13L4224.03 3185.13L4224.03 3187.03L4223.54 3187.03ZM4224.42 3187.03L4224.42 3185.50L4225.42 3187.03L4224.42 3187.03Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4208.6855,3246.805 4212.4606,3246.805 4212.4606,3252.0066 4208.6855,3252.0066"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4205.3295,3246.805 4201.5544,3246.805 4201.5544,3252.0066 4205.3295,3252.0066"},{"type":"text","svgpath":"M 4213.1924 3264.961 C 4212.9624 3264.961 4212.7324 3264.951 4212.4924 3264.951 L 4211.1224 3264.951 L 4210.4924 3264.971 L 4210.4424 3264.911 L 4210.6824 3264.011 L 4210.8324 3264.011 L 4210.7724 3264.591 L 4212.4924 3264.591 C 4212.7324 3264.591 4212.9624 3264.591 4213.1924 3264.581 L 4213.2824 3263.961 L 4213.4224 3263.961 L 4213.4224 3265.581 L 4213.2824 3265.581 Z  M 4211.9324 3266.401 C 4210.8824 3266.401 4210.6024 3266.651 4210.6024 3266.931 C 4210.6024 3267.201 4210.8824 3267.451 4211.9324 3267.451 C 4213.0224 3267.451 4213.3124 3267.201 4213.3124 3266.931 C 4213.3124 3266.651 4213.0224 3266.401 4211.9324 3266.401 Z  M 4210.4324 3266.931 C 4210.4324 3266.461 4210.8324 3266.011 4211.9324 3266.011 C 4213.0624 3266.011 4213.4724 3266.461 4213.4724 3266.931 C 4213.4724 3267.391 4213.0624 3267.841 4211.9324 3267.841 C 4210.8324 3267.841 4210.4324 3267.391 4210.4324 3266.931 Z  M 4213.2424 3270.141 L 4212.0524 3269.401 L 4211.5424 3269.911 L 4211.4924 3270.321 L 4211.3424 3270.321 L 4211.3424 3269.311 L 4211.4924 3269.311 L 4211.5624 3269.651 L 4212.3724 3268.861 L 4210.8324 3268.861 L 4210.2124 3268.881 L 4210.1824 3268.821 L 4210.3624 3268.141 L 4210.4924 3268.141 L 4210.5324 3268.501 L 4212.5024 3268.501 C 4212.7324 3268.501 4212.9924 3268.501 4213.2324 3268.491 L 4213.2824 3268.151 L 4213.4224 3268.151 L 4213.4224 3269.211 L 4213.2824 3269.211 L 4213.2324 3268.871 C 4213.0324 3268.861 4212.8124 3268.861 4212.6024 3268.861 L 4212.3024 3269.151 L 4213.4224 3269.831 L 4213.4224 3270.431 L 4213.2824 3270.431 Z  M 4212.6724 3273.231 L 4213.1124 3273.121 L 4213.1124 3272.501 L 4213.1124 3272.501 C 4212.7924 3272.961 4212.3124 3273.311 4211.7524 3273.311 C 4210.8924 3273.311 4210.4224 3272.711 4210.4224 3272.031 C 4210.4224 3271.351 4210.8924 3270.751 4211.7524 3270.751 C 4212.3224 3270.751 4212.7924 3271.111 4213.1124 3271.561 L 4213.1124 3271.561 L 4213.1124 3270.941 L 4212.6724 3270.831 L 4212.6724 3270.611 L 4213.4224 3270.651 L 4213.4224 3271.821 L 4213.1524 3271.821 C 4212.8224 3271.411 4212.3024 3271.161 4211.7524 3271.161 C 4211.1024 3271.161 4210.6124 3271.481 4210.6124 3272.031 C 4210.6124 3272.581 4211.1024 3272.901 4211.7524 3272.901 C 4212.3024 3272.901 4212.8224 3272.651 4213.1524 3272.241 L 4213.4224 3272.241 L 4213.4224 3273.421 L 4212.6724 3273.461 Z ","useTrueTypeFontRendering":true,"thickness":1,"width":1,"net":"","val":1},{"type":"text","svgpath":"M4216.57 3249.64L4216.12 3250.59L4216.56 3250.59L4216.99 3249.67Q4217.03 3249.56 4217.08 3249.49Q4217.14 3249.42 4217.19 3249.38Q4217.25 3249.34 4217.32 3249.33Q4217.39 3249.31 4217.48 3249.31L4217.48 3249.31L4217.66 3249.31L4217.66 3250.59L4218.05 3250.59L4218.05 3247.72L4217.28 3247.72Q4217.03 3247.72 4216.85 3247.77Q4216.67 3247.82 4216.56 3247.92Q4216.44 3248.02 4216.39 3248.16Q4216.33 3248.30 4216.33 3248.47L4216.33 3248.47Q4216.33 3248.60 4216.37 3248.72Q4216.41 3248.84 4216.49 3248.94Q4216.57 3249.04 4216.68 3249.11Q4216.80 3249.18 4216.95 3249.22L4216.95 3249.22Q4216.83 3249.26 4216.74 3249.36Q4216.66 3249.47 4216.57 3249.64L4216.57 3249.64ZM4216.74 3248.50L4216.74 3248.50Q4216.74 3248.27 4216.89 3248.16Q4217.03 3248.04 4217.29 3248.04L4217.29 3248.04L4217.66 3248.04L4217.66 3248.99L4217.34 3248.99Q4217.21 3248.99 4217.09 3248.96Q4216.98 3248.93 4216.91 3248.87Q4216.83 3248.80 4216.78 3248.71Q4216.74 3248.62 4216.74 3248.50ZM4213.81 3249.67L4213.81 3249.67Q4213.81 3249.88 4213.90 3250.06Q4213.99 3250.23 4214.15 3250.36Q4214.32 3250.49 4214.54 3250.56Q4214.76 3250.63 4215.01 3250.63L4215.01 3250.63Q4215.07 3250.63 4215.15 3250.62Q4215.22 3250.62 4215.29 3250.61Q4215.37 3250.61 4215.44 3250.60Q4215.50 3250.60 4215.56 3250.59L4215.56 3250.59L4215.56 3250.24Q4215.44 3250.27 4215.29 3250.28Q4215.14 3250.29 4214.98 3250.29L4214.98 3250.29Q4214.80 3250.29 4214.66 3250.25Q4214.52 3250.21 4214.42 3250.13Q4214.32 3250.06 4214.27 3249.94Q4214.22 3249.83 4214.22 3249.69L4214.22 3249.69Q4214.22 3249.43 4214.41 3249.30Q4214.60 3249.18 4214.96 3249.18L4214.96 3249.18L4215.51 3249.18L4215.51 3247.72L4213.96 3247.72L4213.96 3248.05L4215.15 3248.05L4215.15 3248.86L4214.90 3248.86Q4214.69 3248.86 4214.50 3248.89Q4214.30 3248.93 4214.15 3249.02Q4214.00 3249.12 4213.90 3249.27Q4213.81 3249.43 4213.81 3249.67Z","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4238.794,3305.9435 4235.0189,3305.9435 4235.0189,3300.7419 4238.794,3300.7419"},{"type":"polyline","net":"","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4242.15,3305.9435 4245.9251,3305.9435 4245.9251,3300.7419 4242.15,3300.7419"},{"type":"text","svgpath":"M 4238.4642 3286.3314 C 4238.4742 3286.0914 4238.4742 3285.8614 4238.4742 3285.6314 L 4238.4742 3284.2514 L 4238.4542 3283.6214 L 4238.5142 3283.5714 L 4239.4142 3283.8114 L 4239.4142 3283.9614 L 4238.8342 3283.9114 L 4238.8342 3285.6314 C 4238.8342 3285.8614 4238.8342 3286.0914 4238.8442 3286.3314 L 4239.4642 3286.4114 L 4239.4642 3286.5514 L 4237.8542 3286.5514 L 4237.8542 3286.4114 Z  M 4237.0342 3285.0614 C 4237.0342 3284.0114 4236.7742 3283.7314 4236.4942 3283.7314 C 4236.2242 3283.7314 4235.9742 3284.0114 4235.9742 3285.0614 C 4235.9742 3286.1514 4236.2242 3286.4414 4236.4942 3286.4414 C 4236.7742 3286.4414 4237.0342 3286.1514 4237.0342 3285.0614 Z  M 4236.4942 3283.5614 C 4236.9642 3283.5614 4237.4142 3283.9714 4237.4142 3285.0614 C 4237.4142 3286.1914 4236.9642 3286.6114 4236.4942 3286.6114 C 4236.0342 3286.6114 4235.5842 3286.1914 4235.5842 3285.0614 C 4235.5842 3283.9714 4236.0342 3283.5614 4236.4942 3283.5614 Z  M 4233.2842 3286.3714 L 4234.0242 3285.1814 L 4233.5142 3284.6714 L 4233.1142 3284.6214 L 4233.1142 3284.4714 L 4234.1142 3284.4714 L 4234.1142 3284.6214 L 4233.7742 3284.6914 L 4234.5642 3285.5114 L 4234.5642 3283.9714 L 4234.5442 3283.3414 L 4234.6042 3283.3114 L 4235.2842 3283.4914 L 4235.2842 3283.6314 L 4234.9242 3283.6614 L 4234.9242 3285.6314 C 4234.9242 3285.8714 4234.9342 3286.1314 4234.9342 3286.3714 L 4235.2742 3286.4114 L 4235.2742 3286.5514 L 4234.2142 3286.5514 L 4234.2142 3286.4114 L 4234.5542 3286.3714 C 4234.5642 3286.1614 4234.5642 3285.9414 4234.5642 3285.7314 L 4234.2742 3285.4314 L 4233.5942 3286.5514 L 4232.9942 3286.5514 L 4232.9942 3286.4114 Z  M 4230.1942 3285.8114 L 4230.3042 3286.2414 L 4230.9242 3286.2414 L 4230.9242 3286.2414 C 4230.4742 3285.9214 4230.1142 3285.4514 4230.1142 3284.8814 C 4230.1142 3284.0214 4230.7142 3283.5514 4231.3942 3283.5514 C 4232.0742 3283.5514 4232.6742 3284.0214 4232.6742 3284.8814 C 4232.6742 3285.4514 4232.3142 3285.9214 4231.8642 3286.2414 L 4231.8642 3286.2414 L 4232.4942 3286.2414 L 4232.5942 3285.8114 L 4232.8242 3285.8114 L 4232.7742 3286.5514 L 4231.6042 3286.5514 L 4231.6042 3286.2814 C 4232.0142 3285.9514 4232.2742 3285.4314 4232.2742 3284.8814 C 4232.2742 3284.2314 4231.9442 3283.7414 4231.3942 3283.7414 C 4230.8442 3283.7414 4230.5242 3284.2314 4230.5242 3284.8814 C 4230.5242 3285.4314 4230.7742 3285.9514 4231.1942 3286.2814 L 4231.1942 3286.5514 L 4230.0142 3286.5514 L 4229.9742 3285.8114 Z ","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","val":1},{"type":"text","svgpath":"M 4231.9208 3304.7585 L 4231.4708 3305.7085 L 4231.9108 3305.7085 L 4232.3408 3304.7885 Q 4232.3908 3304.6785 4232.4408 3304.6085 Q 4232.4908 3304.5385 4232.5508 3304.4985 Q 4232.6008 3304.4585 4232.6708 3304.4485 Q 4232.7408 3304.4285 4232.8308 3304.4285 L 4232.8308 3304.4285 L 4233.0108 3304.4285 L 4233.0108 3305.7085 L 4233.4008 3305.7085 L 4233.4008 3302.8285 L 4232.6408 3302.8285 Q 4232.3908 3302.8285 4232.2108 3302.8885 Q 4232.0208 3302.9385 4231.9108 3303.0385 Q 4231.7908 3303.1385 4231.7408 3303.2785 Q 4231.6908 3303.4185 4231.6908 3303.5885 L 4231.6908 3303.5885 Q 4231.6908 3303.7185 4231.7308 3303.8385 Q 4231.7708 3303.9585 4231.8408 3304.0585 Q 4231.9208 3304.1585 4232.0408 3304.2285 Q 4232.1508 3304.2985 4232.3008 3304.3385 L 4232.3008 3304.3385 Q 4232.1808 3304.3785 4232.1008 3304.4785 Q 4232.0108 3304.5885 4231.9208 3304.7585 L 4231.9208 3304.7585 Z  M 4232.1008 3303.6185 L 4232.1008 3303.6185 Q 4232.1008 3303.3885 4232.2408 3303.2785 Q 4232.3808 3303.1585 4232.6408 3303.1585 L 4232.6408 3303.1585 L 4233.0108 3303.1585 L 4233.0108 3304.1085 L 4232.7008 3304.1085 Q 4232.5608 3304.1085 4232.4508 3304.0785 Q 4232.3408 3304.0485 4232.2608 3303.9885 Q 4232.1808 3303.9185 4232.1408 3303.8285 Q 4232.1008 3303.7385 4232.1008 3303.6185 Z  M 4229.0508 3304.7985 L 4229.0508 3304.7985 Q 4229.0508 3304.9885 4229.1308 3305.1685 Q 4229.2008 3305.3385 4229.3308 3305.4685 Q 4229.4608 3305.5985 4229.6508 3305.6685 Q 4229.8308 3305.7485 4230.0608 3305.7485 L 4230.0608 3305.7485 Q 4230.3008 3305.7485 4230.4808 3305.6685 Q 4230.6608 3305.5885 4230.7808 3305.4385 Q 4230.9108 3305.2785 4230.9708 3305.0385 Q 4231.0308 3304.7985 4231.0308 3304.4685 L 4231.0308 3304.4685 Q 4231.0308 3304.2485 4231.0108 3304.0485 Q 4230.9808 3303.8385 4230.9108 3303.6585 Q 4230.8408 3303.4785 4230.7408 3303.3185 Q 4230.6308 3303.1685 4230.4608 3303.0585 Q 4230.3008 3302.9585 4230.0808 3302.8885 Q 4229.8508 3302.8285 4229.5608 3302.8285 L 4229.5608 3302.8285 L 4229.2808 3302.8285 L 4229.2808 3303.1685 L 4229.5908 3303.1685 Q 4229.8408 3303.1685 4230.0308 3303.2285 Q 4230.2208 3303.2885 4230.3508 3303.3985 Q 4230.4808 3303.5185 4230.5408 3303.6685 Q 4230.6108 3303.8285 4230.6308 3304.0285 L 4230.6308 3304.0285 L 4230.6408 3304.1185 Q 4230.5008 3304.0385 4230.3208 3303.9885 Q 4230.1408 3303.9385 4229.9308 3303.9385 L 4229.9308 3303.9385 Q 4229.7108 3303.9385 4229.5508 3303.9985 Q 4229.3808 3304.0685 4229.2708 3304.1785 Q 4229.1608 3304.2885 4229.1108 3304.4485 Q 4229.0508 3304.6085 4229.0508 3304.7985 Z  M 4229.4508 3304.8185 L 4229.4508 3304.8185 Q 4229.4508 3304.6885 4229.4908 3304.5785 Q 4229.5208 3304.4785 4229.5908 3304.3985 Q 4229.6508 3304.3285 4229.7608 3304.2885 Q 4229.8608 3304.2485 4230.0108 3304.2485 L 4230.0108 3304.2485 Q 4230.0908 3304.2485 4230.1808 3304.2585 Q 4230.2608 3304.2785 4230.3508 3304.3085 Q 4230.4308 3304.3285 4230.5008 3304.3685 Q 4230.5808 3304.3985 4230.6408 3304.4385 L 4230.6408 3304.4385 Q 4230.6408 3304.7285 4230.6008 3304.9185 Q 4230.5608 3305.1085 4230.4808 3305.2185 Q 4230.4008 3305.3385 4230.2908 3305.3785 Q 4230.1708 3305.4285 4230.0308 3305.4285 L 4230.0308 3305.4285 Q 4229.9008 3305.4285 4229.8008 3305.3885 Q 4229.6908 3305.3485 4229.6208 3305.2685 Q 4229.5408 3305.1885 4229.5008 3305.0785 Q 4229.4508 3304.9685 4229.4508 3304.8185 Z ","useTrueTypeFontRendering":true,"thickness":0.6,"width":0.6,"net":"","ref":1}]},"fabrication":{"F":[],"B":[]}},"footprints":[{"ref":"FPC1","center":[4216.0626,3332.8702],"bbox":{"pos":[4216.0626,3332.8702],"angle":90,"relpos":[-28.34650000000056,-16.535399999999754],"size":[56.69300000000021,22.834599999999227]},"pads":[{"layers":["B"],"pos":[4221.082,3319.09],"size":[1.1811,4.9213],"angle":-90,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4221.0824,"y":3319.0909},"polygon":[{"x":4218.6218,"y":3318.4999},{"x":4218.6218,"y":3319.681},{"x":4223.543,"y":3319.681},{"x":4223.543,"y":3318.4999}],"net":"3V3"},{"layers":["B"],"pos":[4221.082,3323.028],"size":[1.1811,4.9213],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4221.0824,"y":3323.0284},"polygon":[{"x":4218.6218,"y":3322.4374},{"x":4218.6218,"y":3323.6185},{"x":4223.543,"y":3323.6185},{"x":4223.543,"y":3322.4374}],"net":"RB"},{"layers":["B"],"pos":[4221.082,3326.965],"size":[1.1811,4.9213],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4221.0824,"y":3326.9654},"polygon":[{"x":4218.6218,"y":3326.3744},{"x":4218.6218,"y":3327.5555},{"x":4223.543,"y":3327.5555},{"x":4223.543,"y":3326.3744}],"net":"A"},{"layers":["B"],"pos":[4221.082,3330.902],"size":[1.1811,4.9213],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4221.0824,"y":3330.9024},"polygon":[{"x":4218.6218,"y":3330.3114},{"x":4218.6218,"y":3331.4925},{"x":4223.543,"y":3331.4925},{"x":4223.543,"y":3330.3114}],"net":"B"},{"layers":["B"],"pos":[4221.082,3334.839],"size":[1.1811,4.9213],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4221.0824,"y":3334.8394},"polygon":[{"x":4218.6218,"y":3334.2484},{"x":4218.6218,"y":3335.4295},{"x":4223.543,"y":3335.4295},{"x":4223.543,"y":3334.2484}],"net":"X"},{"layers":["B"],"pos":[4221.082,3338.776],"size":[1.1811,4.9213],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4221.0824,"y":3338.7764},"polygon":[{"x":4218.6218,"y":3338.1854},{"x":4218.6218,"y":3339.3665},{"x":4223.543,"y":3339.3665},{"x":4223.543,"y":3338.1854}],"net":"Y"},{"layers":["B"],"pos":[4221.082,3342.713],"size":[1.1811,4.9213],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4221.0824,"y":3342.7134},"polygon":[{"x":4218.6218,"y":3342.1224},{"x":4218.6218,"y":3343.3035},{"x":4223.543,"y":3343.3035},{"x":4223.543,"y":3342.1224}],"net":"MENU"},{"layers":["B"],"pos":[4221.082,3346.65],"size":[1.1811,4.9213],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4221.0824,"y":3346.6504},"polygon":[{"x":4218.6218,"y":3346.0594},{"x":4218.6218,"y":3347.2405},{"x":4223.543,"y":3347.2405},{"x":4223.543,"y":3346.0594}],"net":"GND"},{"layers":["B"],"pos":[4211.043,3356.099],"size":[7.0866,8.6614],"angle":-270,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4211.0432,"y":3356.0982},"polygon":[{"x":4215.3735,"y":3359.6418},{"x":4215.3735,"y":3352.5552},{"x":4206.7122,"y":3352.5552},{"x":4206.7122,"y":3359.6418}],"net":""},{"layers":["B"],"pos":[4211.043,3309.642],"size":[7.0866,8.6614],"angle":-270,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4211.0432,"y":3309.6422},"polygon":[{"x":4215.3735,"y":3313.1852},{"x":4215.3735,"y":3306.0986},{"x":4206.7122,"y":3306.0986},{"x":4206.7122,"y":3313.1852}],"net":""}],"drawings":[],"layer":"B"},{"ref":"C1","center":[4271.968,3149.406],"bbox":{"pos":[4271.968,3149.406],"angle":90,"relpos":[-5.472500004104404,-2.8166999999994005],"size":[11.006000008209412,5.612099999999373]},"pads":[{"layers":["B"],"pos":[4271.968,3152.162],"size":[3.1496,3.5433],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4271.968,"y":3152.1615},"polygon":[{"x":4270.1963,"y":3150.5871},{"x":4270.1963,"y":3153.7367},{"x":4273.7397,"y":3153.7367},{"x":4273.7397,"y":3150.5871}],"net":"RB"},{"layers":["B"],"pos":[4271.968,3146.65],"size":[3.1496,3.5433],"angle":-90,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4271.968,"y":3146.6505},"polygon":[{"x":4270.1963,"y":3145.0753},{"x":4270.1963,"y":3148.2249},{"x":4273.7397,"y":3148.2249},{"x":4273.7397,"y":3145.0753}],"net":"GND"}],"drawings":[],"layer":"B"},{"ref":"C2","center":[4297.1648,3201.7681],"bbox":{"pos":[4297.1648,3201.7681],"angle":180,"relpos":[-5.472500004105314,-2.8167000000007647],"size":[11.006000008209412,5.612100000000282]},"pads":[{"layers":["B"],"pos":[4299.921,3201.768],"size":[3.1496,3.5433],"angle":-180,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4299.9203,"y":3201.7681},"polygon":[{"x":4298.3459,"y":3203.5398},{"x":4301.4955,"y":3203.5398},{"x":4301.4955,"y":3199.9964},{"x":4298.3459,"y":3199.9964}],"net":"A"},{"layers":["B"],"pos":[4294.409,3201.768],"size":[3.1496,3.5433],"angle":-180,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4294.4093,"y":3201.7681},"polygon":[{"x":4292.8341,"y":3203.5398},{"x":4295.9837,"y":3203.5398},{"x":4295.9837,"y":3199.9964},{"x":4292.8341,"y":3199.9964}],"net":"GND"}],"drawings":[],"layer":"B"},{"ref":"C3","center":[4273.9365,3273.0278],"bbox":{"pos":[4273.9365,3273.0278],"angle":270,"relpos":[-5.472500004105314,-2.81670000000031],"size":[11.006000008208503,5.612100000000282]},"pads":[{"layers":["B"],"pos":[4273.937,3270.272],"size":[3.1496,3.5433],"angle":-270,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4273.9365,"y":3270.2723},"polygon":[{"x":4275.7082,"y":3271.8467},{"x":4275.7082,"y":3268.6971},{"x":4272.1648,"y":3268.6971},{"x":4272.1648,"y":3271.8467}],"net":"B"},{"layers":["B"],"pos":[4273.937,3275.784],"size":[3.1496,3.5433],"angle":-270,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4273.9365,"y":3275.7833},"polygon":[{"x":4275.7082,"y":3277.3585},{"x":4275.7082,"y":3274.2089},{"x":4272.1648,"y":3274.2089},{"x":4272.1648,"y":3277.3585}],"net":"GND"}],"drawings":[],"layer":"B"},{"ref":"C4","center":[4231.8106,3177.7524],"bbox":{"pos":[4231.8106,3177.7524],"angle":270,"relpos":[-5.472500004102585,-2.8167000000007647],"size":[11.006000008207593,5.612100000000282]},"pads":[{"layers":["B"],"pos":[4231.811,3174.997],"size":[3.1496,3.5433],"angle":-270,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4231.8106,"y":3174.9969},"polygon":[{"x":4233.5823,"y":3176.5713},{"x":4233.5823,"y":3173.4217},{"x":4230.0389,"y":3173.4217},{"x":4230.0389,"y":3176.5713}],"net":"X"},{"layers":["B"],"pos":[4231.811,3180.508],"size":[3.1496,3.5433],"angle":-270,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4231.8106,"y":3180.5079},"polygon":[{"x":4233.5823,"y":3182.0831},{"x":4233.5823,"y":3178.9335},{"x":4230.0389,"y":3178.9335},{"x":4230.0389,"y":3182.0831}],"net":"GND"}],"drawings":[],"layer":"B"},{"ref":"C5","center":[4207.0075,3242.7129],"bbox":{"pos":[4207.0075,3242.7129],"angle":0,"relpos":[-5.472500004104404,-2.816699999999855],"size":[11.006000008208503,5.612099999999828]},"pads":[{"layers":["B"],"pos":[4204.252,3242.713],"size":[3.1496,3.5433],"angle":0,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4204.252,"y":3242.7129},"polygon":[{"x":4205.8264,"y":3240.9412},{"x":4202.6768,"y":3240.9412},{"x":4202.6768,"y":3244.4846},{"x":4205.8264,"y":3244.4846}],"net":"Y"},{"layers":["B"],"pos":[4209.763,3242.713],"size":[3.1496,3.5433],"angle":0,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4209.763,"y":3242.7129},"polygon":[{"x":4211.3382,"y":3240.9412},{"x":4208.1886,"y":3240.9412},{"x":4208.1886,"y":3244.4846},{"x":4211.3382,"y":3244.4846}],"net":"GND"}],"drawings":[],"layer":"B"},{"ref":"C6","center":[4240.472,3310.0356],"bbox":{"pos":[4240.472,3310.0356],"angle":180,"relpos":[-5.472500004104404,-2.8166999999994005],"size":[11.006000008208503,5.612099999999828]},"pads":[{"layers":["B"],"pos":[4243.228,3310.036],"size":[3.1496,3.5433],"angle":-180,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4243.2275,"y":3310.0356},"polygon":[{"x":4241.6531,"y":3311.8073},{"x":4244.8027,"y":3311.8073},{"x":4244.8027,"y":3308.2639},{"x":4241.6531,"y":3308.2639}],"net":"MENU"},{"layers":["B"],"pos":[4237.716,3310.036],"size":[3.1496,3.5433],"angle":-180,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4237.7165,"y":3310.0356},"polygon":[{"x":4236.1413,"y":3311.8073},{"x":4239.2909,"y":3311.8073},{"x":4239.2909,"y":3308.2639},{"x":4236.1413,"y":3308.2639}],"net":"GND"}],"drawings":[],"layer":"B"},{"ref":"R1","center":[4278.6609,3149.406],"bbox":{"pos":[4278.6609,3149.406],"angle":270,"relpos":[-5.453099999999722,-2.600800000000163],"size":[10.906199999999444,5.201600000000326]},"pads":[{"layers":["B"],"pos":[4278.661,3146.44],"size":[3.1751,3.4016],"angle":-270,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4278.6609,"y":3146.4405},"polygon":[{"x":4276.9601,"y":3148.028},{"x":4280.3617,"y":3148.028},{"x":4280.3617,"y":3144.8529},{"x":4276.9601,"y":3144.8529}],"net":"3V3"},{"layers":["B"],"pos":[4278.661,3152.372],"size":[3.1751,3.4016],"angle":-270,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4278.6609,"y":3152.3715},"polygon":[{"x":4276.9601,"y":3150.784},{"x":4280.3617,"y":3150.784},{"x":4280.3617,"y":3153.9591},{"x":4276.9601,"y":3153.9591}],"net":"RB"}],"drawings":[],"layer":"B"},{"ref":"R2","center":[4297.1648,3195.0752],"bbox":{"pos":[4297.1648,3195.0752],"angle":0,"relpos":[-5.453099999999722,-2.600800000000163],"size":[10.906200000000354,5.201599999999871]},"pads":[{"layers":["B"],"pos":[4294.199,3195.075],"size":[3.1751,3.4016],"angle":0,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4294.1993,"y":3195.0752},"polygon":[{"x":4295.7868,"y":3196.776},{"x":4295.7868,"y":3193.3744},{"x":4292.6117,"y":3193.3744},{"x":4292.6117,"y":3196.776}],"net":"3V3"},{"layers":["B"],"pos":[4300.13,3195.075],"size":[3.1751,3.4016],"angle":0,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4300.1303,"y":3195.0752},"polygon":[{"x":4298.5428,"y":3196.776},{"x":4298.5428,"y":3193.3744},{"x":4301.7179,"y":3193.3744},{"x":4301.7179,"y":3196.776}],"net":"A"}],"drawings":[],"layer":"B"},{"ref":"R3","center":[4280.6294,3273.0278],"bbox":{"pos":[4280.6294,3273.0278],"angle":90,"relpos":[-5.453099999999722,-2.600800000000163],"size":[10.906200000000354,5.201600000000326]},"pads":[{"layers":["B"],"pos":[4280.629,3275.993],"size":[3.1751,3.4016],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4280.6294,"y":3275.9933},"polygon":[{"x":4282.3302,"y":3274.4058},{"x":4278.9286,"y":3274.4058},{"x":4278.9286,"y":3277.5809},{"x":4282.3302,"y":3277.5809}],"net":"3V3"},{"layers":["B"],"pos":[4280.629,3270.062],"size":[3.1751,3.4016],"angle":-90,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4280.6294,"y":3270.0623},"polygon":[{"x":4282.3302,"y":3271.6498},{"x":4278.9286,"y":3271.6498},{"x":4278.9286,"y":3268.4747},{"x":4282.3302,"y":3268.4747}],"net":"B"}],"drawings":[],"layer":"B"},{"ref":"R4","center":[4225.1177,3178.1461],"bbox":{"pos":[4225.1177,3178.1461],"angle":90,"relpos":[-5.4531000000006316,-2.600800000000163],"size":[10.906200000000354,5.201600000000326]},"pads":[{"layers":["B"],"pos":[4225.118,3181.112],"size":[3.1751,3.4016],"angle":-90,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4225.1177,"y":3181.1116},"polygon":[{"x":4226.8185,"y":3179.5241},{"x":4223.4169,"y":3179.5241},{"x":4223.4169,"y":3182.6992},{"x":4226.8185,"y":3182.6992}],"net":"3V3"},{"layers":["B"],"pos":[4225.118,3175.181],"size":[3.1751,3.4016],"angle":-90,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4225.1177,"y":3175.1806},"polygon":[{"x":4226.8185,"y":3176.7681},{"x":4223.4169,"y":3176.7681},{"x":4223.4169,"y":3173.593},{"x":4226.8185,"y":3173.593}],"net":"X"}],"drawings":[],"layer":"B"},{"ref":"R5","center":[4207.0075,3249.4058],"bbox":{"pos":[4207.0075,3249.4058],"angle":180,"relpos":[-5.4531000000006316,-2.6008000000006177],"size":[10.906200000000354,5.201600000000326]},"pads":[{"layers":["B"],"pos":[4209.973,3249.406],"size":[3.1751,3.4016],"angle":-180,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4209.973,"y":3249.4058},"polygon":[{"x":4208.3855,"y":3247.705},{"x":4208.3855,"y":3251.1066},{"x":4211.5606,"y":3251.1066},{"x":4211.5606,"y":3247.705}],"net":"3V3"},{"layers":["B"],"pos":[4204.042,3249.406],"size":[3.1751,3.4016],"angle":-180,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4204.042,"y":3249.4058},"polygon":[{"x":4205.6295,"y":3247.705},{"x":4205.6295,"y":3251.1066},{"x":4202.4544,"y":3251.1066},{"x":4202.4544,"y":3247.705}],"net":"Y"}],"drawings":[],"layer":"B"},{"ref":"SW1","center":[4252.28,3339.96],"bbox":{"pos":[4252.28,3339.96],"angle":0,"relpos":[-12.30789999999979,-22.807549999999992],"size":[24.61580000000049,45.615099999999984]},"pads":[{"layers":["F"],"pos":[4243.422,3358.24],"size":[5.5118,9.0551],"angle":0,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4243.4217,"y":3358.2403},"polygon":[{"x":4240.6661,"y":3353.7123},{"x":4246.1779,"y":3353.7123},{"x":4246.1779,"y":3362.7675},{"x":4240.6661,"y":3362.7675}],"net":""},{"layers":["F"],"pos":[4261.138,3358.24],"size":[5.5118,9.0551],"angle":0,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4261.1383,"y":3358.2403},"polygon":[{"x":4258.3821,"y":3353.7123},{"x":4263.8939,"y":3353.7123},{"x":4263.8939,"y":3362.7675},{"x":4258.3821,"y":3362.7675}],"net":""},{"layers":["F"],"pos":[4243.422,3321.68],"size":[5.5118,9.0551],"angle":0,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4243.4217,"y":3321.6797},"polygon":[{"x":4240.6661,"y":3317.1525},{"x":4246.1779,"y":3317.1525},{"x":4246.1779,"y":3326.2077},{"x":4240.6661,"y":3326.2077}],"net":"MENU"},{"layers":["F"],"pos":[4261.138,3321.68],"size":[5.5118,9.0551],"angle":0,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4261.1383,"y":3321.6797},"polygon":[{"x":4258.3821,"y":3317.1525},{"x":4263.8939,"y":3317.1525},{"x":4263.8939,"y":3326.2077},{"x":4258.3821,"y":3326.2077}],"net":"GND"}],"drawings":[],"layer":"F"},{"ref":"SW2","center":[4252.2805,3157.28],"bbox":{"pos":[4252.2805,3157.28],"angle":180,"relpos":[-17.71650000000045,-10.827000000000226],"size":[35.43299999999999,34.8427999999999]},"pads":[{"layers":["F","B"],"pos":[4243.423,3152.359],"size":[6.2992,6.2992],"angle":-270,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4243.423,"y":3152.359},"polygon":[],"net":"GND"},{"layers":["F","B"],"pos":[4238.501,3162.201],"size":[7.874,7.874],"angle":-270,"shape":"oval","type":"th","drillsize":[5.1182,5.1182],"holeCenterPoint":{"x":4238.501,"y":3162.201},"polygon":[],"net":""},{"layers":["F","B"],"pos":[4261.139,3152.359],"size":[6.2992,6.2992],"angle":-270,"pin1":1,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4261.139,"y":3152.359},"polygon":[],"net":"RB"},{"layers":["F","B"],"pos":[4266.06,3162.201],"size":[7.874,7.874],"angle":-270,"shape":"oval","type":"th","drillsize":[5.1182,5.1182],"holeCenterPoint":{"x":4266.06,"y":3162.201},"polygon":[],"net":""}],"drawings":[],"layer":"F"},{"ref":"SW3","center":[4283.7783,3222.6324],"bbox":{"pos":[4283.7783,3222.6324],"angle":0,"relpos":[-19.881600000000617,-15.50019999999995],"size":[39.763600000000224,31]},"pads":[{"layers":["F","B"],"pos":[4267.44,3213.774],"size":[7.0866,7.0866],"angle":0,"pin1":1,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4267.4398,"y":3213.7739},"polygon":[],"net":""},{"layers":["F","B"],"pos":[4300.117,3213.774],"size":[7.0866,7.0866],"angle":0,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4300.117,"y":3213.7739},"polygon":[],"net":"A"},{"layers":["F","B"],"pos":[4267.44,3231.491],"size":[7.0866,7.0866],"angle":0,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4267.4398,"y":3231.4904},"polygon":[],"net":""},{"layers":["F","B"],"pos":[4300.117,3231.491],"size":[7.0866,7.0866],"angle":0,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4300.117,"y":3231.4904},"polygon":[],"net":"GND"}],"drawings":[],"layer":"F"},{"ref":"SW4","center":[4252.2824,3254.1279],"bbox":{"pos":[4252.2824,3254.1279],"angle":270,"relpos":[-19.88220000000001,-15.50019999999904],"size":[39.763599999999315,31]},"pads":[{"layers":["F","B"],"pos":[4261.141,3237.789],"size":[7.0866,7.0866],"angle":-270,"pin1":1,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4261.1409,"y":3237.7894},"polygon":[],"net":""},{"layers":["F","B"],"pos":[4261.141,3270.466],"size":[7.0866,7.0866],"angle":-270,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4261.1409,"y":3270.4666},"polygon":[],"net":"B"},{"layers":["F","B"],"pos":[4243.424,3237.789],"size":[7.0866,7.0866],"angle":-270,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4243.4244,"y":3237.7894},"polygon":[],"net":""},{"layers":["F","B"],"pos":[4243.424,3270.466],"size":[7.0866,7.0866],"angle":-270,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4243.4244,"y":3270.4666},"polygon":[],"net":"GND"}],"drawings":[],"layer":"F"},{"ref":"SW5","center":[4252.2824,3191.1379],"bbox":{"pos":[4252.2824,3191.1379],"angle":90,"relpos":[-19.881399999999303,-15.500200000000405],"size":[39.763599999999315,31]},"pads":[{"layers":["F","B"],"pos":[4243.424,3207.476],"size":[7.0866,7.0866],"angle":-90,"pin1":1,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4243.4239,"y":3207.4764},"polygon":[],"net":""},{"layers":["F","B"],"pos":[4243.424,3174.799],"size":[7.0866,7.0866],"angle":-90,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4243.4239,"y":3174.7992},"polygon":[],"net":"X"},{"layers":["F","B"],"pos":[4261.141,3207.476],"size":[7.0866,7.0866],"angle":-90,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4261.1404,"y":3207.4764},"polygon":[],"net":""},{"layers":["F","B"],"pos":[4261.141,3174.799],"size":[7.0866,7.0866],"angle":-90,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4261.1404,"y":3174.7992},"polygon":[],"net":"GND"}],"drawings":[],"layer":"F"},{"ref":"SW6","center":[4220.7883,3222.6324],"bbox":{"pos":[4220.7883,3222.6324],"angle":180,"relpos":[-19.881999999999607,-15.500200000000405],"size":[39.763600000000224,31]},"pads":[{"layers":["F","B"],"pos":[4237.127,3231.491],"size":[7.0866,7.0866],"angle":-180,"pin1":1,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4237.1268,"y":3231.4909},"polygon":[],"net":""},{"layers":["F","B"],"pos":[4204.45,3231.491],"size":[7.0866,7.0866],"angle":-180,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4204.4496,"y":3231.4909},"polygon":[],"net":"Y"},{"layers":["F","B"],"pos":[4237.127,3213.774],"size":[7.0866,7.0866],"angle":-180,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4237.1268,"y":3213.7744},"polygon":[],"net":""},{"layers":["F","B"],"pos":[4204.45,3213.774],"size":[7.0866,7.0866],"angle":-180,"shape":"oval","type":"th","drillsize":[3.937,3.937],"holeCenterPoint":{"x":4204.4496,"y":3213.7744},"polygon":[],"net":"GND"}],"drawings":[],"layer":"F"},{"ref":"R6","center":[4240.472,3303.3427],"bbox":{"pos":[4240.472,3303.3427],"angle":0,"relpos":[-5.453099999999722,-2.600800000000163],"size":[10.906200000000354,5.201599999999871]},"pads":[{"layers":["B"],"pos":[4237.506,3303.343],"size":[3.1751,3.4016],"angle":0,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4237.5065,"y":3303.3427},"polygon":[{"x":4239.094,"y":3305.0435},{"x":4239.094,"y":3301.6419},{"x":4235.9189,"y":3301.6419},{"x":4235.9189,"y":3305.0435}],"net":"3V3"},{"layers":["B"],"pos":[4243.438,3303.343],"size":[3.1751,3.4016],"angle":0,"pin1":1,"shape":"rect","type":"smd","drillsize":[0,0],"holeCenterPoint":{"x":4243.4375,"y":3303.3427},"polygon":[{"x":4241.85,"y":3305.0435},{"x":4241.85,"y":3301.6419},{"x":4245.0251,"y":3301.6419},{"x":4245.0251,"y":3305.0435}],"net":"MENU"}],"drawings":[],"layer":"B"}],"metadata":{"title":"PCB_GamePad_1","revision":"0","company":"Unknown Company","date":"2023-07-19"},"tracks":{"F":[{"type":"polyline","net":"B","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4261.1409,3270.4664 4257.7948,3273.8125 4257.7948,3308.0671"},{"type":"polyline","net":"MENU","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4243.42,3321.68 4243.42,3342.71"},{"type":"polyline","net":"A","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4300.1168,3213.7739 4300.1168,3213.7767 4290.8656,3223.0279 4264.094,3223.0279 4255.4326,3231.6893 4255.4326,3326.9647"},{"type":"polyline","net":"RB","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4261.139,3152.359 4261.139,3152.361 4253.4641,3160.0359 4253.4641,3323.0277"},{"type":"polyline","net":"X","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4243.4239,3174.7994 4243.4245,3174.7994 4251.4956,3182.8705 4251.4956,3334.8387"},{"type":"polyline","net":"Y","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4204.4498,3231.4909 4204.45,3231.4909 4212.913,3223.0279 4241.2594,3223.0279 4249.5271,3231.2956 4249.5271,3338.7757"},{"type":"polyline","net":"MENU","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4243.42,3321.68 4243.42,3315.15"},{"type":"polygon","svgpath":"M4257.99568,3152.16269L4261.33744,3155.50224L4258.3203,3155.60401L4257.8959,3155.17989Z","start":[0,0],"end":[0,0],"net":"RB"},{"type":"polygon","svgpath":"M4296.58026,3213.55347L4300.34003,3217.31018L4296.91923,3217.39843L4296.4948,3216.97434Z","start":[0,0],"end":[0,0],"net":"A"},{"type":"polygon","svgpath":"M4257.60477,3270.24442L4261.36301,3274.00265L4258.00705,3274.02463L4257.58279,3273.60037Z","start":[0,0],"end":[0,0],"net":"B"},{"type":"polygon","svgpath":"M4243.20219,3178.33568L4246.96016,3174.57717L4247.04726,3177.998L4246.62303,3178.42229Z","start":[0,0],"end":[0,0],"net":"X"},{"type":"polygon","svgpath":"M4204.22802,3227.95461L4207.98604,3231.71306L4208.07309,3228.29224L4207.64885,3227.86795Z","start":[0,0],"end":[0,0],"net":"Y"},{"type":"polygon","svgpath":"M4244.17093,3342.05013L4242.67093,3342.05229L4243.11992,3341.35164L4243.71992,3341.35078Z","start":[0,0],"end":[0,0],"net":"MENU"},{"type":"polygon","svgpath":"M4242.67188,3315.81525L4244.17188,3315.81525L4243.72188,3316.51525L4243.12188,3316.51525Z","start":[0,0],"end":[0,0],"net":"MENU"},{"type":"polygon","svgpath":"M4248.77734,3338.1142L4250.27734,3338.1142L4249.82734,3337.4142L4249.22734,3337.4142Z","start":[0,0],"end":[0,0],"net":"Y"},{"type":"polygon","svgpath":"M4250.74561,3334.17719L4252.24561,3334.17719L4251.79561,3333.47719L4251.19561,3333.47719Z","start":[0,0],"end":[0,0],"net":"X"},{"type":"polygon","svgpath":"M4252.71387,3322.36615L4254.21387,3322.36615L4253.76387,3321.66615L4253.16387,3321.66615Z","start":[0,0],"end":[0,0],"net":"RB"},{"type":"polygon","svgpath":"M4254.68262,3326.30316L4256.18262,3326.30316L4255.73262,3325.60316L4255.13262,3325.60316Z","start":[0,0],"end":[0,0],"net":"A"},{"type":"polygon","svgpath":"M4257.04492,3307.4057L4258.54492,3307.4057L4258.09492,3306.7057L4257.49492,3306.7057Z","start":[0,0],"end":[0,0],"net":"B"},{"type":"polygon","svgpath":"M4243.95992,3326.20996L4242.87992,3326.20996L4243.11992,3327.10996L4243.71992,3327.10996Z","start":[0,0],"end":[0,0],"net":"MENU"},{"type":"polygon","svgpath":"M4242.88188,3317.1499L4243.96188,3317.1499L4243.72188,3316.2499L4243.12188,3316.2499Z","start":[0,0],"end":[0,0],"net":"MENU"},{"start":[4243.422,3342.713],"end":[4243.422,3342.713],"width":2,"net":"MENU"},{"start":[4243.422,3315.154],"end":[4243.422,3315.154],"width":2,"net":"MENU"},{"start":[4249.527,3338.776],"end":[4249.527,3338.776],"width":2,"net":"Y"},{"start":[4251.496,3334.839],"end":[4251.496,3334.839],"width":2,"net":"X"},{"start":[4253.464,3323.028],"end":[4253.464,3323.028],"width":2,"net":"RB"},{"start":[4255.433,3326.965],"end":[4255.433,3326.965],"width":2,"net":"A"},{"start":[4257.795,3308.067],"end":[4257.795,3308.067],"width":2,"net":"B"},{"start":[4240.472,3377.752],"end":[4240.472,3377.752],"width":2,"net":"GND"},{"start":[4232.598,3377.752],"end":[4232.598,3377.752],"width":2,"net":"GND"},{"start":[4224.724,3377.752],"end":[4224.724,3377.752],"width":2,"net":"GND"},{"start":[4224.724,3385.626],"end":[4224.724,3385.626],"width":2,"net":"GND"},{"start":[4232.598,3385.626],"end":[4232.598,3385.626],"width":2,"net":"GND"},{"start":[4240.472,3385.626],"end":[4240.472,3385.626],"width":2,"net":"GND"}],"B":[{"type":"polyline","net":"MENU","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4243.42,3342.71 4221.08,3342.71"},{"type":"polyline","net":"Y","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4249.53,3338.78 4221.08,3338.78"},{"type":"polyline","net":"X","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4251.5,3334.84 4221.08,3334.84"},{"type":"polyline","net":"3V3","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4221.08,3319.09 4225.91,3319.09 4229.45,3315.55 4229.45,3307.28 4233.39,3303.34 4237.51,3303.34"},{"type":"polyline","net":"B","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4257.79,3308.07 4257.79,3328.54 4255.43,3330.9 4221.08,3330.9"},{"type":"polyline","net":"A","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4255.43,3326.96 4221.08,3326.97"},{"type":"polyline","net":"RB","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4253.46,3323.03 4221.08,3323.03"},{"type":"polyline","net":"3V3","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4278.66,3146.44 4283.18,3146.44 4294.2,3157.46 4294.2,3195.08"},{"type":"polyline","net":"3V3","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4280.63,3275.99 4284.36,3275.99 4287.72,3272.63 4287.72,3198.62 4291.26,3195.08 4294.2,3195.08"},{"type":"polyline","net":"3V3","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4209.97,3249.41 4220.79,3249.41 4225.12,3245.08 4225.12,3181.11"},{"type":"polyline","net":"3V3","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4237.51,3294.08 4267.85,3294.08 4280.63,3281.3 4280.63,3275.99"},{"type":"polyline","net":"3V3","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4237.51,3303.34 4237.51,3294.08 4209.97,3266.54 4209.97,3249.41"},{"type":"polyline","net":"MENU","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4243.44,3303.34 4243.23,3303.55 4243.23,3310.04"},{"type":"polyline","net":"MENU","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4243.42,3315.15 4243.42,3310.23 4243.23,3310.04"},{"type":"polyline","net":"B","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4273.94,3270.27 4280.42,3270.27 4280.63,3270.06"},{"type":"polyline","net":"B","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4261.14,3270.47 4273.74,3270.47 4273.94,3270.27"},{"type":"polyline","net":"Y","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4204.25,3242.71 4204.25,3249.2 4204.04,3249.41"},{"type":"polyline","net":"Y","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4204.45,3231.49 4204.45,3242.51 4204.25,3242.71"},{"type":"polyline","net":"A","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4299.92,3201.77 4300.13,3201.56 4300.13,3195.08"},{"type":"polyline","net":"A","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4300.12,3213.77 4300.12,3201.96 4299.92,3201.77"},{"type":"polyline","net":"RB","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4271.97,3152.16 4272.18,3152.37 4278.66,3152.37"},{"type":"polyline","net":"RB","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4261.14,3152.36 4271.77,3152.36 4271.97,3152.16"},{"type":"polyline","net":"X","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4231.81,3175 4225.3,3175 4225.12,3175.18"},{"type":"polyline","net":"X","start":[0,0],"end":[0,0],"width":0.6,"svgpath":"M4243.42,3174.8 4232.01,3174.8 4231.81,3175"},{"type":"polygon","svgpath":"M4263.22242,3154.72109L4263.22242,3149.99669L4265.42714,3152.05889L4265.42714,3152.65889Z","start":[0,0],"end":[0,0],"net":"RB"},{"type":"polygon","svgpath":"M4302.77417,3211.43025L4297.45922,3211.43025L4299.8167,3208.94994L4300.4167,3208.94994Z","start":[0,0],"end":[0,0],"net":"A"},{"type":"polygon","svgpath":"M4263.48479,3273.12378L4263.48479,3267.80883L4265.9651,3270.16631L4265.9651,3270.76631Z","start":[0,0],"end":[0,0],"net":"B"},{"type":"polygon","svgpath":"M4241.08016,3177.45679L4241.08016,3172.14184L4238.59985,3174.49932L4238.59985,3175.09932Z","start":[0,0],"end":[0,0],"net":"X"},{"type":"polygon","svgpath":"M4207.10718,3233.83464L4201.79223,3233.83464L4204.14971,3236.31495L4204.74971,3236.31495Z","start":[0,0],"end":[0,0],"net":"Y"},{"type":"polygon","svgpath":"M4242.76045,3343.46266L4242.76042,3341.96266L4242.06043,3342.41268L4242.06044,3343.01268Z","start":[0,0],"end":[0,0],"net":"MENU"},{"type":"polygon","svgpath":"M4242.67188,3314.49237L4244.17188,3314.49237L4243.72188,3313.79237L4243.12188,3313.79237Z","start":[0,0],"end":[0,0],"net":"MENU"},{"type":"polygon","svgpath":"M4248.86592,3339.52565L4248.86589,3338.02565L4248.1659,3338.47566L4248.16591,3339.07566Z","start":[0,0],"end":[0,0],"net":"Y"},{"type":"polygon","svgpath":"M4250.83418,3335.58863L4250.83416,3334.08863L4250.13416,3334.53864L4250.13417,3335.13864Z","start":[0,0],"end":[0,0],"net":"X"},{"type":"polygon","svgpath":"M4252.80245,3323.7776L4252.80241,3322.2776L4252.10242,3322.72762L4252.10244,3323.32762Z","start":[0,0],"end":[0,0],"net":"RB"},{"type":"polygon","svgpath":"M4254.77119,3327.71461L4254.77117,3326.21461L4254.07118,3326.66462L4254.07118,3327.26462Z","start":[0,0],"end":[0,0],"net":"A"},{"type":"polygon","svgpath":"M4257.04492,3308.72858L4258.54492,3308.72858L4258.09492,3309.42858L4257.49492,3309.42858Z","start":[0,0],"end":[0,0],"net":"B"},{"type":"polygon","svgpath":"M4223.54297,3319.63009L4223.54297,3318.55009L4224.44297,3318.79009L4224.44297,3319.39009Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4223.54297,3323.56826L4223.54297,3322.48826L4224.44297,3322.72824L4224.44297,3323.32824Z","start":[0,0],"end":[0,0],"net":"RB"},{"type":"polygon","svgpath":"M4223.54297,3327.50505L4223.54297,3326.42505L4224.44297,3326.66504L4224.44297,3327.26504Z","start":[0,0],"end":[0,0],"net":"A"},{"type":"polygon","svgpath":"M4223.54297,3331.4421L4223.54297,3330.3621L4224.44297,3330.6021L4224.44297,3331.2021Z","start":[0,0],"end":[0,0],"net":"B"},{"type":"polygon","svgpath":"M4223.54297,3335.37907L4223.54297,3334.29907L4224.44297,3334.53906L4224.44297,3335.13906Z","start":[0,0],"end":[0,0],"net":"X"},{"type":"polygon","svgpath":"M4223.54297,3339.31608L4223.54297,3338.23608L4224.44297,3338.47607L4224.44297,3339.07607Z","start":[0,0],"end":[0,0],"net":"Y"},{"type":"polygon","svgpath":"M4223.54297,3343.25308L4223.54297,3342.17308L4224.44297,3342.41306L4224.44297,3343.01306Z","start":[0,0],"end":[0,0],"net":"MENU"},{"type":"polygon","svgpath":"M4273.73975,3152.91207L4273.73975,3151.83207L4274.63975,3152.07207L4274.63975,3152.67207Z","start":[0,0],"end":[0,0],"net":"RB"},{"type":"polygon","svgpath":"M4270.19629,3151.81889L4270.19629,3152.89889L4269.29629,3152.65889L4269.29629,3152.05889Z","start":[0,0],"end":[0,0],"net":"RB"},{"type":"polygon","svgpath":"M4300.67086,3199.99634L4299.59086,3199.99634L4299.83086,3199.09634L4300.43086,3199.09634Z","start":[0,0],"end":[0,0],"net":"A"},{"type":"polygon","svgpath":"M4299.5767,3203.53979L4300.6567,3203.53979L4300.4167,3204.43979L4299.8167,3204.43979Z","start":[0,0],"end":[0,0],"net":"A"},{"type":"polygon","svgpath":"M4275.70801,3270.81173L4275.70801,3269.73173L4276.60801,3269.97173L4276.60801,3270.57173Z","start":[0,0],"end":[0,0],"net":"B"},{"type":"polygon","svgpath":"M4272.16504,3269.92631L4272.16504,3271.00631L4271.26504,3270.76631L4271.26504,3270.16631Z","start":[0,0],"end":[0,0],"net":"B"},{"type":"polygon","svgpath":"M4230.03906,3174.45634L4230.03906,3175.53634L4229.13906,3175.29634L4229.13906,3174.69634Z","start":[0,0],"end":[0,0],"net":"X"},{"type":"polygon","svgpath":"M4233.58252,3175.33932L4233.58252,3174.25932L4234.48252,3174.49932L4234.48252,3175.09932Z","start":[0,0],"end":[0,0],"net":"X"},{"type":"polygon","svgpath":"M4203.71146,3244.48462L4204.79146,3244.48462L4204.55146,3245.38462L4203.95146,3245.38462Z","start":[0,0],"end":[0,0],"net":"Y"},{"type":"polygon","svgpath":"M4204.98971,3240.94116L4203.90971,3240.94116L4204.14971,3240.04116L4204.74971,3240.04116Z","start":[0,0],"end":[0,0],"net":"Y"},{"type":"polygon","svgpath":"M4243.76803,3308.26392L4242.68803,3308.26392L4242.92803,3307.36392L4243.52803,3307.36392Z","start":[0,0],"end":[0,0],"net":"MENU"},{"type":"polygon","svgpath":"M4242.88188,3311.80737L4243.96188,3311.80737L4243.72188,3312.70737L4243.12188,3312.70737Z","start":[0,0],"end":[0,0],"net":"MENU"},{"type":"polygon","svgpath":"M4280.36182,3146.97994L4280.36182,3145.89994L4281.26182,3146.13994L4281.26182,3146.73994Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4276.95996,3152.91207L4276.95996,3151.83207L4276.05996,3152.07207L4276.05996,3152.67207Z","start":[0,0],"end":[0,0],"net":"RB"},{"type":"polygon","svgpath":"M4294.73873,3193.37451L4293.65873,3193.37451L4293.89873,3192.47451L4294.49873,3192.47451Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4292.61182,3194.5352L4292.61182,3195.6152L4291.71182,3195.3752L4291.71182,3194.7752Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4300.67086,3196.77588L4299.59086,3196.77588L4299.83086,3197.67588L4300.43086,3197.67588Z","start":[0,0],"end":[0,0],"net":"A"},{"type":"polygon","svgpath":"M4282.33008,3276.5339L4282.33008,3275.4539L4283.23008,3275.6939L4283.23008,3276.2939Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4280.08939,3277.58081L4281.16939,3277.58081L4280.92939,3278.48081L4280.32939,3278.48081Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4278.92871,3270.81173L4278.92871,3269.73173L4278.02871,3269.97173L4278.02871,3270.57173Z","start":[0,0],"end":[0,0],"net":"B"},{"type":"polygon","svgpath":"M4224.57768,3182.69922L4225.65768,3182.69922L4225.41768,3183.59922L4224.81768,3183.59922Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4226.81836,3174.45634L4226.81836,3175.53634L4227.71836,3175.29634L4227.71836,3174.69634Z","start":[0,0],"end":[0,0],"net":"X"},{"type":"polygon","svgpath":"M4211.56055,3249.94576L4211.56055,3248.86576L4212.46055,3249.10576L4212.46055,3249.70576Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4209.43363,3251.10669L4210.51363,3251.10669L4210.27363,3252.00669L4209.67363,3252.00669Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4203.71146,3247.70508L4204.79146,3247.70508L4204.55146,3246.80508L4203.95146,3246.80508Z","start":[0,0],"end":[0,0],"net":"Y"},{"type":"polygon","svgpath":"M4235.91895,3302.80277L4235.91895,3303.88277L4235.01895,3303.64277L4235.01895,3303.04277Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4238.04586,3301.64185L4236.96586,3301.64185L4237.20586,3300.74185L4237.80586,3300.74185Z","start":[0,0],"end":[0,0],"net":"3V3"},{"type":"polygon","svgpath":"M4243.76803,3305.04346L4242.68803,3305.04346L4242.92803,3305.94346L4243.52803,3305.94346Z","start":[0,0],"end":[0,0],"net":"MENU"},{"start":[4243.422,3342.713],"end":[4243.422,3342.713],"width":2,"net":"MENU"},{"start":[4243.422,3315.154],"end":[4243.422,3315.154],"width":2,"net":"MENU"},{"start":[4249.527,3338.776],"end":[4249.527,3338.776],"width":2,"net":"Y"},{"start":[4251.496,3334.839],"end":[4251.496,3334.839],"width":2,"net":"X"},{"start":[4253.464,3323.028],"end":[4253.464,3323.028],"width":2,"net":"RB"},{"start":[4255.433,3326.965],"end":[4255.433,3326.965],"width":2,"net":"A"},{"start":[4257.795,3308.067],"end":[4257.795,3308.067],"width":2,"net":"B"},{"start":[4240.472,3377.752],"end":[4240.472,3377.752],"width":2,"net":"GND"},{"start":[4232.598,3377.752],"end":[4232.598,3377.752],"width":2,"net":"GND"},{"start":[4224.724,3377.752],"end":[4224.724,3377.752],"width":2,"net":"GND"},{"start":[4224.724,3385.626],"end":[4224.724,3385.626],"width":2,"net":"GND"},{"start":[4232.598,3385.626],"end":[4232.598,3385.626],"width":2,"net":"GND"},{"start":[4240.472,3385.626],"end":[4240.472,3385.626],"width":2,"net":"GND"}]},"zones":{"F":[{"net":"GND","svgpath":"M 4285.26476 3392.44334 L 4283.76239 3392.4801 4209.0031 3392.4801 4208.114 3392.44424 4207.27282 3392.34344 4206.44214 3392.17695 4205.62708 3391.9458 4204.83268 3391.65141 4204.06382 3391.29561 4203.32524 3390.88057 4202.62151 3390.40887 4201.95695 3389.8834 4201.33567 3389.30742 4200.7615 3388.68447 4200.23797 3388.01838 4199.76832 3387.31328 4199.35544 3386.5735 4199.00187 3385.80361 4198.70979 3385.00835 4198.48102 3384.19262 4198.31695 3383.36146 4198.21859 3382.51999 4198.1852 3381.6622 4198.1854 3137.62186 4198.22108 3136.73275 4198.32186 3135.89172 4198.48835 3135.06104 4198.7195 3134.24598 4199.01389 3133.45158 4199.36969 3132.68272 4199.78473 3131.94414 4200.25643 3131.24041 4200.7819 3130.57585 4201.35788 3129.95457 4201.98083 3129.3804 4202.64692 3128.85687 4203.35202 3128.38722 4204.0918 3127.97434 4204.86169 3127.62077 4205.65695 3127.32869 4206.47268 3127.09992 4207.30384 3126.93585 4208.14534 3126.83749 4209.00335 3126.804 4283.76217 3126.804 4285.28432 3126.84182 4286.77609 3126.95234 4288.26059 3127.13592 4289.7343 3127.39213 4291.19366 3127.72033 4292.63515 3128.11975 4294.05532 3128.58941 4295.45073 3129.1282 4296.81802 3129.7348 4298.15389 3130.40777 4299.45514 3131.14547 4300.71862 3131.94613 4301.9413 3132.80782 4303.12022 3133.72847 4304.25255 3134.70586 4305.33555 3135.73763 4306.36662 3136.8213 4307.34328 3137.95426 4308.26317 3139.13377 4309.12408 3140.357 4309.92393 3141.621 4310.66079 3142.92272 4311.33289 3144.25903 4311.93862 3145.62671 4312.4765 3147.02247 4312.94525 3148.44293 4313.34374 3149.88469 4313.671 3151.34426 4313.92626 3152.81813 4314.10888 3154.30275 4314.21844 3155.79456 4314.2553 3157.29713 4314.2553 3361.98707 4314.21748 3363.50922 4314.10696 3365.00099 4313.92338 3366.48549 4313.66717 3367.9592 4313.33897 3369.41856 4312.93955 3370.86005 4312.46989 3372.28022 4311.9311 3373.67563 4311.3245 3375.04292 4310.65153 3376.37879 4309.91383 3377.68004 4309.11317 3378.94352 4308.25148 3380.1662 4307.33083 3381.34512 4306.35344 3382.47745 4305.32167 3383.56045 4304.238 3384.59152 4303.10504 3385.56818 4301.92553 3386.48807 4300.7023 3387.34898 4299.4383 3388.14883 4298.13658 3388.88569 4296.80027 3389.55779 4295.43259 3390.16352 4294.03683 3390.7014 4292.61637 3391.17015 4291.17461 3391.56864 4289.71504 3391.8959 4288.24117 3392.15116 4286.75655 3392.33378 4285.26476 3392.44334 Z M 4249.43655 3340.79205 L 4249.79803 3340.77582 4250.15081 3340.6953 4250.48355 3340.55308 4250.78554 3340.35374 4251.04709 3340.10367 4251.25978 3339.81093 4251.41678 3339.48491 4251.51305 3339.1361 4251.54548 3338.7757 4251.51305 3338.4153 4251.41678 3338.06649 4251.25736 3337.73544 4251.08316 3337.48114 4251.01929 3337.32484 4251.0256 3337.15612 4251.10096 3337.00503 4251.23194 3336.89849 4251.39522 3336.85549 4251.76653 3336.83882 4252.11931 3336.7583 4252.45205 3336.61608 4252.75404 3336.41674 4253.01559 3336.16667 4253.22828 3335.87393 4253.38528 3335.54791 4253.48155 3335.1991 4253.51398 3334.8387 4253.48155 3334.4783 4253.38528 3334.12949 4253.22713 3333.80108 4253.10361 3333.62562 4252.87913 3333.27642 4252.83181 3333.17284 4252.8156 3333.06012 4252.8156 3327.91703 4252.84679 3327.76218 4252.93549 3327.63148 4253.06787 3327.54531 4253.22329 3327.5171 4253.37751 3327.55127 4253.50648 3327.64247 4253.59009 3327.77648 4253.6141 3327.84044 4253.79969 3328.15108 4254.03777 3328.42358 4254.32068 3328.64919 4254.63932 3328.82066 4254.98347 3328.93248 4255.34205 3328.98105 4255.70353 3328.96482 4256.05631 3328.8843 4256.38905 3328.74208 4256.69104 3328.54274 4256.95259 3328.29267 4257.16528 3327.99993 4257.32228 3327.67391 4257.40134 3327.38743 4257.4756 3327.2427 4257.60134 3327.13951 4257.75778 3327.09491 4257.91904 3327.1163 4258.15599 3327.19921 4258.40486 3327.22725 4259.51035 3327.22725 4259.51035 3324.19348 4257.1526 3324.19348 4256.99953 3324.16303 4256.86976 3324.07632 4256.78305 3323.94655 4256.7526 3323.79347 4256.7526 3319.56593 4256.78305 3319.41285 4256.86976 3319.28308 4256.99953 3319.19637 4257.1526 3319.16593 4259.51035 3319.16593 4259.51035 3316.13215 4258.40486 3316.13215 4258.15599 3316.16019 4257.94094 3316.23544 4257.74802 3316.35666 4257.58691 3316.51777 4257.49129 3316.66995 4257.37171 3316.79179 4257.21222 3316.85267 4257.04187 3316.8415 4256.89169 3316.76032 4256.78903 3316.62392 4256.7526 3316.45714 4256.7526 3310.39273 4256.78069 3310.24548 4256.86101 3310.11891 4256.98229 3310.0308 4257.12748 3309.99352 4257.27621 3310.01231 4257.34567 3310.03488 4257.70425 3310.08345 4258.06573 3310.06722 4258.41851 3309.9867 4258.75125 3309.84448 4259.05324 3309.64514 4259.31479 3309.39507 4259.52748 3309.10233 4259.68448 3308.77631 4259.78075 3308.4275 4259.81318 3308.0671 4259.78075 3307.7067 4259.68448 3307.35789 4259.52632 3307.02946 4259.40292 3306.85413 4259.17833 3306.50476 4259.13101 3306.40118 4259.1148 3306.28846 4259.1148 3275.43479 4259.145 3275.28232 4259.23103 3275.15287 4259.35991 3275.06599 4259.51218 3275.03479 4261.35472 3275.02273 4261.70908 3274.99383 4262.27555 3274.88577 4262.82047 3274.70871 4263.33891 3274.46476 4263.82268 3274.15775 4264.26415 3273.79253 4264.65637 3273.37485 4264.99315 3272.91131 4265.26918 3272.40922 4265.4801 3271.87649 4265.62259 3271.32153 4265.69441 3270.75308 4265.69441 3270.18012 4265.62259 3269.61167 4265.4801 3269.05671 4265.26918 3268.52398 4264.99315 3268.02189 4264.65637 3267.55835 4264.26415 3267.14067 4263.82268 3266.77545 4263.33891 3266.46844 4262.82047 3266.22449 4262.27555 3266.04743 4261.71273 3265.94007 4261.1409 3265.90409 4260.56907 3265.94007 4260.00625 3266.04743 4259.46133 3266.22449 4258.94289 3266.46844 4258.45912 3266.77545 4258.01765 3267.14067 4257.62543 3267.55835 4257.47621 3267.76373 4257.3526 3267.87503 4257.19441 3267.92642 4257.02899 3267.90904 4256.88495 3267.82587 4256.78718 3267.69131 4256.7526 3267.52862 4256.7526 3240.72738 4256.78718 3240.56469 4256.88495 3240.43013 4257.02899 3240.34696 4257.19441 3240.32958 4257.3526 3240.38097 4257.47621 3240.49227 4257.62543 3240.69765 4258.01765 3241.11533 4258.45912 3241.48055 4258.94289 3241.78756 4259.46133 3242.03151 4260.00625 3242.20857 4260.56907 3242.31593 4261.1409 3242.35191 4261.71273 3242.31593 4262.27555 3242.20857 4262.82047 3242.03151 4263.33891 3241.78756 4263.82268 3241.48055 4264.26415 3241.11533 4264.65637 3240.69765 4264.99315 3240.23411 4265.26918 3239.73202 4265.4801 3239.19929 4265.62259 3238.64433 4265.69441 3238.07588 4265.69441 3237.50292 4265.62259 3236.93447 4265.4801 3236.37951 4265.43191 3236.17722 4265.46314 3236.02641 4265.54904 3235.89857 4265.67688 3235.81267 4265.82769 3235.78143 4266.02991 3235.8296 4266.58487 3235.97209 4267.15332 3236.04391 4267.72628 3236.04391 4268.29473 3235.97209 4268.84969 3235.8296 4269.38242 3235.61868 4269.88451 3235.34265 4270.34805 3235.00587 4270.76573 3234.61365 4271.13095 3234.17218 4271.43796 3233.68841 4271.68191 3233.16997 4271.85897 3232.62505 4271.96633 3232.06223 4272.00231 3231.4904 4271.96633 3230.91857 4271.85897 3230.35575 4271.68191 3229.81083 4271.43796 3229.29239 4271.13095 3228.80862 4270.76573 3228.36715 4270.34805 3227.97493 4269.88451 3227.63815 4269.38242 3227.36212 4268.84969 3227.1512 4268.29473 3227.00871 4267.72628 3226.93689 4267.15332 3226.93689 4266.58487 3227.00871 4266.02991 3227.1512 4265.49718 3227.36212 4264.99509 3227.63815 4264.53155 3227.97493 4264.11387 3228.36715 4263.74865 3228.80862 4263.44164 3229.29239 4263.19769 3229.81083 4263.02063 3230.35575 4262.91327 3230.91857 4262.87729 3231.4904 4262.91327 3232.06223 4263.02063 3232.62505 4263.13669 3232.98223 4263.15311 3233.15597 4263.09399 3233.32017 4262.97059 3233.44357 4262.8064 3233.50268 4262.63266 3233.48626 4262.27555 3233.37023 4261.71273 3233.26287 4261.1409 3233.22689 4260.56907 3233.26287 4260.00625 3233.37023 4259.46133 3233.54729 4258.94289 3233.79124 4258.45912 3234.09825 4258.01765 3234.46347 4257.62543 3234.88115 4257.47621 3235.08653 4257.3526 3235.19783 4257.19441 3235.24922 4257.02899 3235.23184 4256.88495 3235.14867 4256.78718 3235.01411 4256.7526 3234.85142 4256.7526 3232.40175 4256.78305 3232.24867 4256.86976 3232.1189 4264.5236 3224.46506 4264.65337 3224.37835 4264.80645 3224.3479 4290.84464 3224.3479 4291.13959 3224.3169 4291.4016 3224.23177 4291.64476 3224.09138 4291.81009 3223.95017 4297.23977 3218.52049 4297.36478 3218.43579 4297.5123 3218.40347 4300.35199 3218.33021 4300.97193 3218.25559 4301.52689 3218.1131 4302.05962 3217.90218 4302.56171 3217.62615 4303.02525 3217.28937 4303.44293 3216.89715 4303.80815 3216.45568 4304.11516 3215.97191 4304.35911 3215.45347 4304.53617 3214.90855 4304.64353 3214.34573 4304.67951 3213.7739 4304.64353 3213.20207 4304.53617 3212.63925 4304.35911 3212.09433 4304.11516 3211.57589 4303.80815 3211.09212 4303.44293 3210.65065 4303.02525 3210.25843 4302.56171 3209.92165 4302.05962 3209.64562 4301.52689 3209.4347 4300.97193 3209.29221 4300.40348 3209.22039 4299.83052 3209.22039 4299.26207 3209.29221 4298.70711 3209.4347 4298.17438 3209.64562 4297.67229 3209.92165 4297.20875 3210.25843 4296.79107 3210.65065 4296.42585 3211.09212 4296.11884 3211.57589 4295.87489 3212.09433 4295.69783 3212.63925 4295.59047 3213.20207 4295.56002 3213.55045 4295.48929 3216.38163 4295.45703 3216.52932 4295.37226 3216.65448 4290.436 3221.59074 4290.30623 3221.67745 4290.15315 3221.7079 4264.11496 3221.7079 4263.82001 3221.7389 4263.558 3221.82403 4263.31484 3221.96442 4263.14951 3222.10563 4255.46694 3229.7882 4255.33717 3229.8749 4255.1841 3229.90535 4255.03103 3229.8749 4254.90126 3229.7882 4254.81455 3229.65843 4254.7841 3229.50535 4254.7841 3160.74835 4254.81455 3160.59527 4254.90126 3160.4655 4258.64529 3156.72147 4258.76885 3156.6374 4258.91465 3156.60454 4261.36039 3156.52205 4261.67811 3156.49308 4262.21795 3156.3857 4262.73431 3156.21042 4263.22337 3155.96924 4263.67677 3155.66629 4264.08675 3155.30675 4264.44629 3154.89677 4264.74924 3154.44337 4264.99042 3153.95431 4265.1657 3153.43795 4265.27208 3152.90313 4265.30774 3152.359 4265.27208 3151.81487 4265.1657 3151.28005 4264.99042 3150.76369 4264.74924 3150.27463 4264.44629 3149.82123 4264.08675 3149.41125 4263.67677 3149.05171 4263.22337 3148.74876 4262.73431 3148.50758 4262.21795 3148.3323 4261.68313 3148.22592 4261.139 3148.19026 4260.59487 3148.22592 4260.06005 3148.3323 4259.54369 3148.50758 4259.05463 3148.74876 4258.60123 3149.05171 4258.19125 3149.41125 4257.83171 3149.82123 4257.52876 3150.27463 4257.28758 3150.76369 4257.1123 3151.28005 4257.00592 3151.81487 4256.97549 3152.15143 4256.895 3154.58556 4256.86219 3154.7315 4256.77806 3154.85518 4252.54554 3159.0877 4252.3589 3159.31818 4252.23383 3159.56364 4252.16116 3159.83486 4252.1441 3160.05162 4252.1441 3180.68655 4252.11365 3180.83963 4252.02694 3180.9694 4251.89717 3181.0561 4251.7441 3181.08655 4251.59103 3181.0561 4251.46126 3180.9694 4248.16952 3177.67766 4248.08479 3177.55258 4248.05249 3177.405 4247.98019 3174.56531 4247.90559 3173.94427 4247.7631 3173.38931 4247.55218 3172.85658 4247.27615 3172.35449 4246.93937 3171.89095 4246.54715 3171.47327 4246.10568 3171.10805 4245.62191 3170.80104 4245.10347 3170.55709 4244.55855 3170.38003 4243.99573 3170.27267 4243.4239 3170.23669 4242.85207 3170.27267 4242.28925 3170.38003 4241.74433 3170.55709 4241.22589 3170.80104 4240.74212 3171.10805 4240.30065 3171.47327 4239.90843 3171.89095 4239.57165 3172.35449 4239.29562 3172.85658 4239.0847 3173.38931 4238.94221 3173.94427 4238.87039 3174.51272 4238.87039 3175.08568 4238.94221 3175.65413 4239.0847 3176.20909 4239.29562 3176.74182 4239.57165 3177.24391 4239.90843 3177.70745 4240.30065 3178.12513 4240.74212 3178.49035 4241.22589 3178.79736 4241.74433 3179.04131 4242.28925 3179.21837 4242.85207 3179.32573 4243.19883 3179.35592 4246.03026 3179.42761 4246.17787 3179.4599 4246.30298 3179.54464 4250.05844 3183.3001 4250.14515 3183.42987 4250.1756 3183.58295 4250.1756 3229.11165 4250.14515 3229.26473 4250.05844 3229.3945 4249.92867 3229.4812 4249.7756 3229.51165 4249.62253 3229.4812 4249.49276 3229.3945 4242.2076 3222.10934 4241.97712 3221.9227 4241.73166 3221.79763 4241.46044 3221.72496 4241.24368 3221.7079 4212.93396 3221.7079 4212.63901 3221.7389 4212.377 3221.82403 4212.13384 3221.96442 4211.96851 3222.10563 4207.32852 3226.74562 4207.20342 3226.83036 4207.05581 3226.86265 4204.21625 3226.93458 4203.59467 3227.00921 4203.03971 3227.1517 4202.50698 3227.36262 4202.00489 3227.63865 4201.54135 3227.97543 4201.12367 3228.36765 4200.75845 3228.80912 4200.45144 3229.29289 4200.20749 3229.81133 4200.03043 3230.35625 4199.92307 3230.91907 4199.88709 3231.4909 4199.92307 3232.06273 4200.03043 3232.62555 4200.20749 3233.17047 4200.45144 3233.68891 4200.75845 3234.17268 4201.12367 3234.61415 4201.54135 3235.00637 4202.00489 3235.34315 4202.50698 3235.61918 4203.03971 3235.8301 4203.59467 3235.97259 4204.16312 3236.04441 4204.73608 3236.04441 4205.30453 3235.97259 4205.85949 3235.8301 4206.39222 3235.61918 4206.89431 3235.34315 4207.35785 3235.00637 4207.77553 3234.61415 4208.14075 3234.17268 4208.44776 3233.68891 4208.69171 3233.17047 4208.86877 3232.62555 4208.97613 3232.06273 4209.00628 3231.71655 4209.07834 3228.88496 4209.11063 3228.73738 4209.19536 3228.6123 4213.3426 3224.46506 4213.47237 3224.37835 4213.62545 3224.3479 4240.54695 3224.3479 4240.70003 3224.37835 4240.8298 3224.46506 4248.08994 3231.7252 4248.17665 3231.85497 4248.2071 3232.00805 4248.2071 3235.47926 4248.16903 3235.64958 4248.06207 3235.78747 4247.90658 3235.8667 4247.73215 3235.87218 4247.57199 3235.80287 4247.45658 3235.67196 4247.27665 3235.34469 4246.93987 3234.88115 4246.54765 3234.46347 4246.10618 3234.09825 4245.62241 3233.79124 4245.10397 3233.54729 4244.55905 3233.37023 4243.99623 3233.26287 4243.4244 3233.22689 4242.85257 3233.26287 4242.28975 3233.37023 4241.93428 3233.48573 4241.76054 3233.50215 4241.59634 3233.44304 4241.47294 3233.31964 4241.41383 3233.15544 4241.43025 3232.9817 4241.54597 3232.62555 4241.65333 3232.06273 4241.68931 3231.4909 4241.65333 3230.91907 4241.54597 3230.35625 4241.36891 3229.81133 4241.12496 3229.29289 4240.81795 3228.80912 4240.45273 3228.36765 4240.03505 3227.97543 4239.57151 3227.63865 4239.06942 3227.36262 4238.53669 3227.1517 4237.98173 3227.00921 4237.41328 3226.93739 4236.84032 3226.93739 4236.27187 3227.00921 4235.71691 3227.1517 4235.18418 3227.36262 4234.68209 3227.63865 4234.21855 3227.97543 4233.80087 3228.36765 4233.43565 3228.80912 4233.12864 3229.29289 4232.88469 3229.81133 4232.70763 3230.35625 4232.60027 3230.91907 4232.56429 3231.4909 4232.60027 3232.06273 4232.70763 3232.62555 4232.88469 3233.17047 4233.12864 3233.68891 4233.43565 3234.17268 4233.80087 3234.61415 4234.21855 3235.00637 4234.68209 3235.34315 4235.18418 3235.61918 4235.71691 3235.8301 4236.27187 3235.97259 4236.84032 3236.04441 4237.41328 3236.04441 4237.98173 3235.97259 4238.53669 3235.8301 4238.73713 3235.78264 4238.88795 3235.81387 4239.01578 3235.89977 4239.10169 3236.02761 4239.13292 3236.17843 4239.0852 3236.37951 4238.94271 3236.93447 4238.87089 3237.50292 4238.87089 3238.07588 4238.94271 3238.64433 4239.0852 3239.19929 4239.29612 3239.73202 4239.57215 3240.23411 4239.90893 3240.69765 4240.30115 3241.11533 4240.74262 3241.48055 4241.22639 3241.78756 4241.74483 3242.03151 4242.28975 3242.20857 4242.85257 3242.31593 4243.4244 3242.35191 4243.99623 3242.31593 4244.55905 3242.20857 4245.10397 3242.03151 4245.62241 3241.78756 4246.10618 3241.48055 4246.54765 3241.11533 4246.93987 3240.69765 4247.27665 3240.23411 4247.45658 3239.90684 4247.57199 3239.77593 4247.73215 3239.70662 4247.90658 3239.7121 4248.06207 3239.79133 4248.16903 3239.92922 4248.2071 3240.09954 4248.2071 3268.15646 4248.16903 3268.32678 4248.06207 3268.46467 4247.99515 3268.49877 4248.08994 3268.56211 4248.17665 3268.69188 4248.2071 3268.84495 4248.2071 3272.08825 4248.17665 3272.24132 4248.08994 3272.37109 4247.99515 3272.43443 4248.06207 3272.46853 4248.16903 3272.60642 4248.2071 3272.77674 4248.2071 3336.99752 4248.19089 3337.11024 4248.14357 3337.21382 4247.89419 3337.58932 4247.7086 3337.89996 4247.58145 3338.23874 4247.51684 3338.59477 4247.51684 3338.95663 4247.58145 3339.31266 4247.7086 3339.65144 4247.89419 3339.96208 4248.13227 3340.23458 4248.41518 3340.46019 4248.73382 3340.63166 4249.07797 3340.74348 4249.43655 3340.79205 Z M 4243.33145 3344.72905 L 4243.69293 3344.71282 4244.04571 3344.6323 4244.37845 3344.49008 4244.68044 3344.29074 4244.94199 3344.04067 4245.15468 3343.74793 4245.31168 3343.42191 4245.40795 3343.0731 4245.44038 3342.7127 4245.40795 3342.3523 4245.31168 3342.00349 4245.1536 3341.67522 4245.02814 3341.49732 4244.80384 3341.14952 4244.75629 3341.04573 4244.74 3340.93273 4244.74 3327.62725 4244.77045 3327.47418 4244.85716 3327.34441 4244.98693 3327.2577 4245.14 3327.22725 4246.15514 3327.22725 4246.40401 3327.19921 4246.61906 3327.12396 4246.81198 3327.00274 4246.97309 3326.84163 4247.09431 3326.64871 4247.16956 3326.43366 4247.1976 3326.18479 4247.1976 3317.17461 4247.16956 3316.92574 4247.09431 3316.71069 4246.97309 3316.51777 4246.81198 3316.35666 4246.61906 3316.23544 4246.40401 3316.16019 4246.15514 3316.13215 4245.76272 3316.13215 4245.61882 3316.10537 4245.49418 3316.02861 4245.40551 3315.91214 4245.36467 3315.77158 4245.37714 3315.62574 4245.40795 3315.5141 4245.44038 3315.1537 4245.40795 3314.7933 4245.31168 3314.44449 4245.15468 3314.11847 4244.94199 3313.82573 4244.68044 3313.57566 4244.37845 3313.37632 4244.04571 3313.2341 4243.69293 3313.15358 4243.33145 3313.13735 4242.97287 3313.18592 4242.62872 3313.29774 4242.31008 3313.46921 4242.02717 3313.69482 4241.78909 3313.96732 4241.6035 3314.27796 4241.47635 3314.61674 4241.41174 3314.97277 4241.41174 3315.33463 4241.47092 3315.66073 4241.4641 3315.83423 4241.38441 3315.9885 4241.24685 3316.09446 4241.07735 3316.13215 4240.68826 3316.13215 4240.43939 3316.16019 4240.22434 3316.23544 4240.03142 3316.35666 4239.87031 3316.51777 4239.74909 3316.71069 4239.67384 3316.92574 4239.6458 3317.17461 4239.6458 3326.18479 4239.67384 3326.43366 4239.74909 3326.64871 4239.87031 3326.84163 4240.03142 3327.00274 4240.22434 3327.12396 4240.43939 3327.19921 4240.68826 3327.22725 4241.7 3327.22725 4241.85307 3327.2577 4241.98284 3327.34441 4242.06955 3327.47418 4242.1 3327.62725 4242.1 3340.93557 4242.08387 3341.04801 4242.03678 3341.15139 4241.78909 3341.52632 4241.6035 3341.83696 4241.47635 3342.17574 4241.41174 3342.53177 4241.41174 3342.89363 4241.47635 3343.24966 4241.6035 3343.58844 4241.78909 3343.89908 4242.02717 3344.17158 4242.31008 3344.39719 4242.62872 3344.56866 4242.97287 3344.68048 4243.33145 3344.72905 Z M 4266.58487 3218.25559 L 4267.15332 3218.32741 4267.72628 3218.32741 4268.29473 3218.25559 4268.84969 3218.1131 4269.38242 3217.90218 4269.88451 3217.62615 4270.34805 3217.28937 4270.76573 3216.89715 4271.13095 3216.45568 4271.43796 3215.97191 4271.68191 3215.45347 4271.85897 3214.90855 4271.96633 3214.34573 4272.00231 3213.7739 4271.96633 3213.20207 4271.85897 3212.63925 4271.68191 3212.09433 4271.43796 3211.57589 4271.13095 3211.09212 4270.76573 3210.65065 4270.34805 3210.25843 4269.88451 3209.92165 4269.38242 3209.64562 4268.84969 3209.4347 4268.29473 3209.29221 4267.72628 3209.22039 4267.15332 3209.22039 4266.58487 3209.29221 4266.02991 3209.4347 4265.82781 3209.48282 4265.67699 3209.45159 4265.54915 3209.36569 4265.46325 3209.23785 4265.43202 3209.08703 4265.4796 3208.88629 4265.62209 3208.33133 4265.69391 3207.76288 4265.69391 3207.18992 4265.62209 3206.62147 4265.4796 3206.06651 4265.26868 3205.53378 4264.99265 3205.03169 4264.65587 3204.56815 4264.26365 3204.15047 4263.82218 3203.78525 4263.33841 3203.47824 4262.81997 3203.23429 4262.27505 3203.05723 4261.71223 3202.94987 4261.1404 3202.91389 4260.56857 3202.94987 4260.00575 3203.05723 4259.46083 3203.23429 4258.94239 3203.47824 4258.45862 3203.78525 4258.01715 3204.15047 4257.62493 3204.56815 4257.28815 3205.03169 4257.01212 3205.53378 4256.8012 3206.06651 4256.65871 3206.62147 4256.58689 3207.18992 4256.58689 3207.76288 4256.65871 3208.33133 4256.8012 3208.88629 4257.01212 3209.41902 4257.28815 3209.92111 4257.62493 3210.38465 4258.01715 3210.80233 4258.45862 3211.16755 4258.94239 3211.47456 4259.46083 3211.71851 4260.00575 3211.89557 4260.56857 3212.00293 4261.1404 3212.03891 4261.71223 3212.00293 4262.27505 3211.89557 4262.63217 3211.77953 4262.80591 3211.76311 4262.97011 3211.82223 4263.09351 3211.94563 4263.15262 3212.10982 4263.1362 3212.28356 4263.02063 3212.63925 4262.91327 3213.20207 4262.87729 3213.7739 4262.91327 3214.34573 4263.02063 3214.90855 4263.19769 3215.45347 4263.44164 3215.97191 4263.74865 3216.45568 4264.11387 3216.89715 4264.53155 3217.28937 4264.99509 3217.62615 4265.49718 3217.90218 4266.02991 3218.1131 4266.58487 3218.25559 Z M 4236.27187 3218.25609 L 4236.84032 3218.32791 4237.41328 3218.32791 4237.98173 3218.25609 4238.53669 3218.1136 4239.06942 3217.90268 4239.57151 3217.62665 4240.03505 3217.28987 4240.45273 3216.89765 4240.81795 3216.45618 4241.12496 3215.97241 4241.36891 3215.45397 4241.54597 3214.90905 4241.65333 3214.34623 4241.68931 3213.7744 4241.65333 3213.20257 4241.54597 3212.63975 4241.43049 3212.28434 4241.41407 3212.1106 4241.47318 3211.9464 4241.59658 3211.823 4241.76078 3211.76389 4241.93452 3211.78031 4242.28925 3211.89557 4242.85207 3212.00293 4243.4239 3212.03891 4243.99573 3212.00293 4244.55855 3211.89557 4245.10347 3211.71851 4245.62191 3211.47456 4246.10568 3211.16755 4246.54715 3210.80233 4246.93937 3210.38465 4247.27615 3209.92111 4247.55218 3209.41902 4247.7631 3208.88629 4247.90559 3208.33133 4247.97741 3207.76288 4247.97741 3207.18992 4247.90559 3206.62147 4247.7631 3206.06651 4247.55218 3205.53378 4247.27615 3205.03169 4246.93937 3204.56815 4246.54715 3204.15047 4246.10568 3203.78525 4245.62191 3203.47824 4245.10347 3203.23429 4244.55855 3203.05723 4243.99573 3202.94987 4243.4239 3202.91389 4242.85207 3202.94987 4242.28925 3203.05723 4241.74433 3203.23429 4241.22589 3203.47824 4240.74212 3203.78525 4240.30065 3204.15047 4239.90843 3204.56815 4239.57165 3205.03169 4239.29562 3205.53378 4239.0847 3206.06651 4238.94221 3206.62147 4238.87039 3207.18992 4238.87039 3207.76288 4238.94221 3208.33133 4239.0847 3208.88629 4239.13209 3209.08655 4239.10086 3209.23736 4239.01496 3209.3652 4238.88712 3209.4511 4238.7363 3209.48234 4238.53669 3209.4352 4237.98173 3209.29271 4237.41328 3209.22089 4236.84032 3209.22089 4236.27187 3209.29271 4235.71691 3209.4352 4235.18418 3209.64612 4234.68209 3209.92215 4234.21855 3210.25893 4233.80087 3210.65115 4233.43565 3211.09262 4233.12864 3211.57639 4232.88469 3212.09483 4232.70763 3212.63975 4232.60027 3213.20257 4232.56429 3213.7744 4232.60027 3214.34623 4232.70763 3214.90905 4232.88469 3215.45397 4233.12864 3215.97241 4233.43565 3216.45618 4233.80087 3216.89765 4234.21855 3217.28987 4234.68209 3217.62665 4235.18418 3217.90268 4235.71691 3218.1136 4236.27187 3218.25609 Z M 4302.8209 3371.64865 L 4303.464 3371.68477 4304.1071 3371.64865 4304.74211 3371.54076 4305.36105 3371.36245 4305.95613 3371.11596 4306.51987 3370.80439 4307.04518 3370.43166 4307.52546 3370.00246 4307.95466 3369.52218 4308.32739 3368.99687 4308.63896 3368.43313 4308.88545 3367.83805 4309.06376 3367.21911 4309.17165 3366.5841 4309.20777 3365.941 4309.17165 3365.2979 4309.06376 3364.66289 4308.88545 3364.04395 4308.63896 3363.44887 4308.32739 3362.88513 4307.95466 3362.35982 4307.52546 3361.87954 4307.04518 3361.45034 4306.51987 3361.07761 4305.95613 3360.76604 4305.36105 3360.51955 4304.74211 3360.34124 4304.1071 3360.23335 4303.464 3360.19723 4302.8209 3360.23335 4302.18589 3360.34124 4301.56695 3360.51955 4300.97187 3360.76604 4300.40813 3361.07761 4299.88282 3361.45034 4299.40254 3361.87954 4298.97334 3362.35982 4298.60061 3362.88513 4298.28904 3363.44887 4298.04255 3364.04395 4297.86424 3364.66289 4297.75635 3365.2979 4297.72023 3365.941 4297.75635 3366.5841 4297.86424 3367.21911 4298.04255 3367.83805 4298.28904 3368.43313 4298.60061 3368.99687 4298.97334 3369.52218 4299.40254 3370.00246 4299.88282 3370.43166 4300.40813 3370.80439 4300.97187 3371.11596 4301.56695 3371.36245 4302.18589 3371.54076 4302.8209 3371.64865 Z M 4208.976 3387.43277 L 4209.6191 3387.39665 4210.25411 3387.28876 4210.87305 3387.11045 4211.46813 3386.86396 4212.03187 3386.55239 4212.55718 3386.17966 4213.03746 3385.75046 4213.46666 3385.27018 4213.83939 3384.74487 4214.15096 3384.18113 4214.39745 3383.58605 4214.57576 3382.96711 4214.68365 3382.3321 4214.71977 3381.689 4214.68365 3381.0459 4214.57576 3380.41089 4214.39745 3379.79195 4214.15096 3379.19687 4213.83939 3378.63313 4213.46666 3378.10782 4213.03746 3377.62754 4212.55718 3377.19834 4212.03187 3376.82561 4211.46813 3376.51404 4210.87305 3376.26755 4210.25411 3376.08924 4209.6191 3375.98135 4208.976 3375.94523 4208.3329 3375.98135 4207.69789 3376.08924 4207.07895 3376.26755 4206.48387 3376.51404 4205.92013 3376.82561 4205.39482 3377.19834 4204.91454 3377.62754 4204.48534 3378.10782 4204.11261 3378.63313 4203.80104 3379.19687 4203.55455 3379.79195 4203.37624 3380.41089 4203.26835 3381.0459 4203.23223 3381.689 4203.26835 3382.3321 4203.37624 3382.96711 4203.55455 3383.58605 4203.80104 3384.18113 4204.11261 3384.74487 4204.48534 3385.27018 4204.91454 3385.75046 4205.39482 3386.17966 4205.92013 3386.55239 4206.48387 3386.86396 4207.07895 3387.11045 4207.69789 3387.28876 4208.3329 3387.39665 4208.976 3387.43277 Z M 4208.976 3143.33877 L 4209.6191 3143.30265 4210.25411 3143.19476 4210.87305 3143.01645 4211.46813 3142.76996 4212.03187 3142.45839 4212.55718 3142.08566 4213.03746 3141.65646 4213.46666 3141.17618 4213.83939 3140.65087 4214.15096 3140.08713 4214.39745 3139.49205 4214.57576 3138.87311 4214.68365 3138.2381 4214.71977 3137.595 4214.68365 3136.9519 4214.57576 3136.31689 4214.39745 3135.69795 4214.15096 3135.10287 4213.83939 3134.53913 4213.46666 3134.01382 4213.03746 3133.53354 4212.55718 3133.10434 4212.03187 3132.73161 4211.46813 3132.42004 4210.87305 3132.17355 4210.25411 3131.99524 4209.6191 3131.88735 4208.976 3131.85123 4208.3329 3131.88735 4207.69789 3131.99524 4207.07895 3132.17355 4206.48387 3132.42004 4205.92013 3132.73161 4205.39482 3133.10434 4204.91454 3133.53354 4204.48534 3134.01382 4204.11261 3134.53913 4203.80104 3135.10287 4203.55455 3135.69795 4203.37624 3136.31689 4203.26835 3136.9519 4203.23223 3137.595 4203.26835 3138.2381 4203.37624 3138.87311 4203.55455 3139.49205 4203.80104 3140.08713 4204.11261 3140.65087 4204.48534 3141.17618 4204.91454 3141.65646 4205.39482 3142.08566 4205.92013 3142.45839 4206.48387 3142.76996 4207.07895 3143.01645 4207.69789 3143.19476 4208.3329 3143.30265 4208.976 3143.33877 Z M 4303.464 3159.08677 L 4304.1071 3159.05065 4304.74211 3158.94276 4305.36105 3158.76445 4305.95613 3158.51796 4306.51987 3158.20639 4307.04518 3157.83366 4307.52546 3157.40446 4307.95466 3156.92418 4308.32739 3156.39887 4308.63896 3155.83513 4308.88545 3155.24005 4309.06376 3154.62111 4309.17165 3153.9861 4309.20777 3153.343 4309.17165 3152.6999 4309.06376 3152.06489 4308.88545 3151.44595 4308.63896 3150.85087 4308.32739 3150.28713 4307.95466 3149.76182 4307.52546 3149.28154 4307.04518 3148.85234 4306.51987 3148.47961 4305.95613 3148.16804 4305.36105 3147.92155 4304.74211 3147.74324 4304.1071 3147.63535 4303.464 3147.59923 4302.8209 3147.63535 4302.18589 3147.74324 4301.56695 3147.92155 4300.97187 3148.16804 4300.40813 3148.47961 4299.88282 3148.85234 4299.40254 3149.28154 4298.97334 3149.76182 4298.60061 3150.28713 4298.28904 3150.85087 4298.04255 3151.44595 4297.86424 3152.06489 4297.75635 3152.6999 4297.72023 3153.343 4297.75635 3153.9861 4297.86424 3154.62111 4298.04255 3155.24005 4298.28904 3155.83513 4298.60061 3156.39887 4298.97334 3156.92418 4299.40254 3157.40446 4299.88282 3157.83366 4300.40813 3158.20639 4300.97187 3158.51796 4301.56695 3158.76445 4302.18589 3158.94276 4302.8209 3159.05065 4303.464 3159.08677 Z M 4238.501 3167.15727 L 4239.09841 3167.12113 4239.68711 3167.01325 4240.25852 3166.83519 4240.80429 3166.58956 4241.31648 3166.27993 4241.78761 3165.91082 4242.21082 3165.48761 4242.57993 3165.01648 4242.88956 3164.50429 4243.13519 3163.95852 4243.31325 3163.38711 4243.42113 3162.79841 4243.45727 3162.201 4243.42113 3161.60359 4243.31325 3161.01489 4243.13519 3160.44348 4242.88956 3159.89771 4242.57993 3159.38552 4242.21082 3158.91439 4241.78761 3158.49118 4241.31648 3158.12207 4240.80429 3157.81244 4240.25852 3157.56681 4239.68711 3157.38875 4239.09841 3157.28087 4238.501 3157.24473 4237.90359 3157.28087 4237.31489 3157.38875 4236.74348 3157.56681 4236.19771 3157.81244 4235.68552 3158.12207 4235.21439 3158.49118 4234.79118 3158.91439 4234.42207 3159.38552 4234.11244 3159.89771 4233.86681 3160.44348 4233.68875 3161.01489 4233.58087 3161.60359 4233.54473 3162.201 4233.58087 3162.79841 4233.68875 3163.38711 4233.86681 3163.95852 4234.11244 3164.50429 4234.42207 3165.01648 4234.79118 3165.48761 4235.21439 3165.91082 4235.68552 3166.27993 4236.19771 3166.58956 4236.74348 3166.83519 4237.31489 3167.01325 4237.90359 3167.12113 4238.501 3167.15727 Z M 4265.46259 3167.12113 L 4266.06 3167.15727 4266.65741 3167.12113 4267.24611 3167.01325 4267.81752 3166.83519 4268.36329 3166.58956 4268.87548 3166.27993 4269.34661 3165.91082 4269.76982 3165.48761 4270.13893 3165.01648 4270.44856 3164.50429 4270.69419 3163.95852 4270.87225 3163.38711 4270.98013 3162.79841 4271.01627 3162.201 4270.98013 3161.60359 4270.87225 3161.01489 4270.69419 3160.44348 4270.44856 3159.89771 4270.13893 3159.38552 4269.76982 3158.91439 4269.34661 3158.49118 4268.87548 3158.12207 4268.36329 3157.81244 4267.81752 3157.56681 4267.24611 3157.38875 4266.65741 3157.28087 4266.06 3157.24473 4265.46259 3157.28087 4264.87389 3157.38875 4264.30248 3157.56681 4263.75671 3157.81244 4263.24452 3158.12207 4262.77339 3158.49118 4262.35018 3158.91439 4261.98107 3159.38552 4261.67144 3159.89771 4261.42581 3160.44348 4261.24775 3161.01489 4261.13987 3161.60359 4261.10373 3162.201 4261.13987 3162.79841 4261.24775 3163.38711 4261.42581 3163.95852 4261.67144 3164.50429 4261.98107 3165.01648 4262.35018 3165.48761 4262.77339 3165.91082 4263.24452 3166.27993 4263.75671 3166.58956 4264.30248 3166.83519 4264.87389 3167.01325 4265.46259 3167.12113 Z M 4258.15599 3363.75981 L 4258.40486 3363.78785 4263.87174 3363.78785 4264.12061 3363.75981 4264.33566 3363.68456 4264.52858 3363.56334 4264.68969 3363.40223 4264.81091 3363.20931 4264.88616 3362.99426 4264.9142 3362.74539 4264.9142 3353.73521 4264.88616 3353.48634 4264.81091 3353.27129 4264.68969 3353.07837 4264.52858 3352.91726 4264.33566 3352.79604 4264.12061 3352.72079 4263.87174 3352.69275 4258.40486 3352.69275 4258.15599 3352.72079 4257.94094 3352.79604 4257.74802 3352.91726 4257.58691 3353.07837 4257.46569 3353.27129 4257.39044 3353.48634 4257.3624 3353.73521 4257.3624 3362.74539 4257.39044 3362.99426 4257.46569 3363.20931 4257.58691 3363.40223 4257.74802 3363.56334 4257.94094 3363.68456 4258.15599 3363.75981 Z M 4246.15514 3363.78785 L 4246.40401 3363.75981 4246.61906 3363.68456 4246.81198 3363.56334 4246.97309 3363.40223 4247.09431 3363.20931 4247.16956 3362.99426 4247.1976 3362.74539 4247.1976 3353.73521 4247.16956 3353.48634 4247.09431 3353.27129 4246.97309 3353.07837 4246.81198 3352.91726 4246.61906 3352.79604 4246.40401 3352.72079 4246.15514 3352.69275 4240.68826 3352.69275 4240.43939 3352.72079 4240.22434 3352.79604 4240.03142 3352.91726 4239.87031 3353.07837 4239.74909 3353.27129 4239.67384 3353.48634 4239.6458 3353.73521 4239.6458 3362.74539 4239.67384 3362.99426 4239.74909 3363.20931 4239.87031 3363.40223 4240.03142 3363.56334 4240.22434 3363.68456 4240.43939 3363.75981 4240.68826 3363.78785 4246.15514 3363.78785 Z M 4264.9142 3319.16593 L 4264.9142 3317.17461 4264.88616 3316.92574 4264.81091 3316.71069 4264.68969 3316.51777 4264.52858 3316.35666 4264.33566 3316.23544 4264.12061 3316.16019 4263.87174 3316.13215 4262.76625 3316.13215 4262.76625 3319.16593 4264.9142 3319.16593 Z M 4263.87174 3327.22725 L 4264.12061 3327.19921 4264.33566 3327.12396 4264.52858 3327.00274 4264.68969 3326.84163 4264.81091 3326.64871 4264.88616 3326.43366 4264.9142 3326.18479 4264.9142 3324.19348 4262.76625 3324.19348 4262.76625 3327.22725 4263.87174 3327.22725 Z M 4245.44605 3266.38546 L 4245.44605 3268.44495 4247.54102 3268.44495 4247.45658 3268.34916 4247.27665 3268.02189 4246.93987 3267.55835 4246.54765 3267.14067 4246.10618 3266.77545 4245.62241 3266.46844 4245.44605 3266.38546 Z M 4245.44605 3274.54774 L 4245.62241 3274.46476 4246.10618 3274.15775 4246.54765 3273.79253 4246.93987 3273.37485 4247.27665 3272.91131 4247.45658 3272.58404 4247.54102 3272.48825 4245.44605 3272.48825 4245.44605 3274.54774 Z M 4241.40275 3268.44495 L 4241.40275 3266.38546 4241.22639 3266.46844 4240.74262 3266.77545 4240.30115 3267.14067 4239.90893 3267.55835 4239.57215 3268.02189 4239.33956 3268.44495 4241.40275 3268.44495 Z M 4241.40275 3274.54774 L 4241.40275 3272.48825 4239.33956 3272.48825 4239.57215 3272.91131 4239.90893 3273.37485 4240.30115 3273.79253 4240.74262 3274.15775 4241.22639 3274.46476 4241.40275 3274.54774 Z M 4304.19814 3229.46875 L 4304.11516 3229.29239 4303.80815 3228.80862 4303.44293 3228.36715 4303.02525 3227.97493 4302.56171 3227.63815 4302.13865 3227.40556 4302.13865 3229.46875 4304.19814 3229.46875 Z M 4302.13865 3233.51205 L 4302.13865 3235.57524 4302.56171 3235.34265 4303.02525 3235.00587 4303.44293 3234.61365 4303.80815 3234.17218 4304.11516 3233.68841 4304.19814 3233.51205 4302.13865 3233.51205 Z M 4202.42795 3211.75275 L 4202.42795 3209.68956 4202.00489 3209.92215 4201.54135 3210.25893 4201.12367 3210.65115 4200.75845 3211.09262 4200.45144 3211.57639 4200.36846 3211.75275 4202.42795 3211.75275 Z M 4202.00489 3217.62665 L 4202.42795 3217.85924 4202.42795 3215.79605 4200.36846 3215.79605 4200.45144 3215.97241 4200.75845 3216.45618 4201.12367 3216.89765 4201.54135 3217.28987 4202.00489 3217.62665 Z M 4206.47125 3209.68956 L 4206.47125 3211.75275 4208.53074 3211.75275 4208.44776 3211.57639 4208.14075 3211.09262 4207.77553 3210.65115 4207.35785 3210.25893 4206.89431 3209.92215 4206.47125 3209.68956 Z M 4206.47125 3215.79605 L 4206.47125 3217.85924 4206.89431 3217.62665 4207.35785 3217.28987 4207.77553 3216.89765 4208.14075 3216.45618 4208.44776 3215.97241 4208.53074 3215.79605 4206.47125 3215.79605 Z M 4296.11884 3229.29239 L 4296.03586 3229.46875 4298.09535 3229.46875 4298.09535 3227.40556 4297.67229 3227.63815 4297.20875 3227.97493 4296.79107 3228.36715 4296.42585 3228.80862 4296.11884 3229.29239 Z M 4298.09535 3235.57524 L 4298.09535 3233.51205 4296.03586 3233.51205 4296.11884 3233.68841 4296.42585 3234.17218 4296.79107 3234.61365 4297.20875 3235.00587 4297.67229 3235.34265 4298.09535 3235.57524 Z M 4263.16205 3176.82085 L 4263.16205 3178.88034 4263.33841 3178.79736 4263.82218 3178.49035 4264.26365 3178.12513 4264.65587 3177.70745 4264.99265 3177.24391 4265.22524 3176.82085 4263.16205 3176.82085 Z M 4263.16205 3170.71806 L 4263.16205 3172.77755 4265.22524 3172.77755 4264.99265 3172.35449 4264.65587 3171.89095 4264.26365 3171.47327 4263.82218 3171.10805 4263.33841 3170.80104 4263.16205 3170.71806 Z M 4259.11875 3178.88034 L 4259.11875 3176.82085 4257.05556 3176.82085 4257.28815 3177.24391 4257.62493 3177.70745 4258.01715 3178.12513 4258.45862 3178.49035 4258.94239 3178.79736 4259.11875 3178.88034 Z M 4259.11875 3172.77755 L 4259.11875 3170.71806 4258.94239 3170.80104 4258.45862 3171.10805 4258.01715 3171.47327 4257.62493 3171.89095 4257.28815 3172.35449 4257.05556 3172.77755 4259.11875 3172.77755 Z M 4245.2478 3156.09724 L 4245.50737 3155.96924 4245.96077 3155.66629 4246.37075 3155.30675 4246.73029 3154.89677 4247.03324 3154.44337 4247.16124 3154.1838 4245.2478 3154.1838 4245.2478 3156.09724 Z M 4245.2478 3148.62076 L 4245.2478 3150.5342 4247.16124 3150.5342 4247.03324 3150.27463 4246.73029 3149.82123 4246.37075 3149.41125 4245.96077 3149.05171 4245.50737 3148.74876 4245.2478 3148.62076 Z M 4241.5982 3150.5342 L 4241.5982 3148.62076 4241.33863 3148.74876 4240.88523 3149.05171 4240.47525 3149.41125 4240.11571 3149.82123 4239.81276 3150.27463 4239.68476 3150.5342 4241.5982 3150.5342 Z M 4241.5982 3156.09724 L 4241.5982 3154.1838 4239.68476 3154.1838 4239.81276 3154.44337 4240.11571 3154.89677 4240.47525 3155.30675 4240.88523 3155.66629 4241.33863 3155.96924 4241.5982 3156.09724 Z "}],"B":[{"net":"GND","svgpath":"M 4285.26476 3392.44334 L 4283.76239 3392.4801 4209.0031 3392.4801 4208.114 3392.44424 4207.27282 3392.34344 4206.44214 3392.17695 4205.62708 3391.9458 4204.83268 3391.65141 4204.06382 3391.29561 4203.32524 3390.88057 4202.62151 3390.40887 4201.95695 3389.8834 4201.33567 3389.30742 4200.7615 3388.68447 4200.23797 3388.01838 4199.76832 3387.31328 4199.35544 3386.5735 4199.00187 3385.80361 4198.70979 3385.00835 4198.48102 3384.19262 4198.31695 3383.36146 4198.21859 3382.51999 4198.1852 3381.6622 4198.1854 3137.62186 4198.22108 3136.73275 4198.32186 3135.89172 4198.48835 3135.06104 4198.7195 3134.24598 4199.01389 3133.45158 4199.36969 3132.68272 4199.78473 3131.94414 4200.25643 3131.24041 4200.7819 3130.57585 4201.35788 3129.95457 4201.98083 3129.3804 4202.64692 3128.85687 4203.35202 3128.38722 4204.0918 3127.97434 4204.86169 3127.62077 4205.65695 3127.32869 4206.47268 3127.09992 4207.30384 3126.93585 4208.14534 3126.83749 4209.00335 3126.804 4283.76217 3126.804 4285.28432 3126.84182 4286.77609 3126.95234 4288.26059 3127.13592 4289.7343 3127.39213 4291.19366 3127.72033 4292.63515 3128.11975 4294.05532 3128.58941 4295.45073 3129.1282 4296.81802 3129.7348 4298.15389 3130.40777 4299.45514 3131.14547 4300.71862 3131.94613 4301.9413 3132.80782 4303.12022 3133.72847 4304.25255 3134.70586 4305.33555 3135.73763 4306.36662 3136.8213 4307.34328 3137.95426 4308.26317 3139.13377 4309.12408 3140.357 4309.92393 3141.621 4310.66079 3142.92272 4311.33289 3144.25903 4311.93862 3145.62671 4312.4765 3147.02247 4312.94525 3148.44293 4313.34374 3149.88469 4313.671 3151.34426 4313.92626 3152.81813 4314.10888 3154.30275 4314.21844 3155.79456 4314.2553 3157.29713 4314.2553 3361.98707 4314.21748 3363.50922 4314.10696 3365.00099 4313.92338 3366.48549 4313.66717 3367.9592 4313.33897 3369.41856 4312.93955 3370.86005 4312.46989 3372.28022 4311.9311 3373.67563 4311.3245 3375.04292 4310.65153 3376.37879 4309.91383 3377.68004 4309.11317 3378.94352 4308.25148 3380.1662 4307.33083 3381.34512 4306.35344 3382.47745 4305.32167 3383.56045 4304.238 3384.59152 4303.10504 3385.56818 4301.92553 3386.48807 4300.7023 3387.34898 4299.4383 3388.14883 4298.13658 3388.88569 4296.80027 3389.55779 4295.43259 3390.16352 4294.03683 3390.7014 4292.61637 3391.17015 4291.17461 3391.56864 4289.71504 3391.8959 4288.24117 3392.15116 4286.75655 3392.33378 4285.26476 3392.44334 Z M 4222.56272 3344.72395 L 4222.56272 3346.10512 4224.56305 3346.10512 4224.53501 3345.83344 4224.45976 3345.61839 4224.33854 3345.42547 4224.17743 3345.26436 4223.98451 3345.14314 4223.74534 3345.05945 4223.60539 3344.97512 4223.51083 3344.84186 4223.47746 3344.6819 4223.51083 3344.52194 4223.60539 3344.38868 4223.74534 3344.30435 4223.98451 3344.22066 4224.12508 3344.15349 4224.53747 3344.04351 4224.64054 3344.03 4241.63923 3344.03 4241.75175 3344.04615 4241.85518 3344.0933 4242.2484 3344.348 4242.31008 3344.39719 4242.62872 3344.56866 4242.97287 3344.68048 4243.33145 3344.72905 4243.69293 3344.71282 4244.04571 3344.6323 4244.37845 3344.49008 4244.68044 3344.29074 4244.94199 3344.04067 4245.15468 3343.74793 4245.31168 3343.42191 4245.40795 3343.0731 4245.44038 3342.7127 4245.40795 3342.3523 4245.31168 3342.00349 4245.15468 3341.67747 4244.94199 3341.38473 4244.68044 3341.13466 4244.37845 3340.93532 4244.2205 3340.86781 4244.09216 3340.78011 4244.00695 3340.65011 4243.97772 3340.49744 4244.0089 3340.34515 4244.09578 3340.21625 4244.22523 3340.1302 4244.37771 3340.1 4247.75562 3340.1 4247.86817 3340.11616 4247.97162 3340.16334 4248.35258 3340.41027 4248.41518 3340.46019 4248.73382 3340.63166 4249.07797 3340.74348 4249.43655 3340.79205 4249.79803 3340.77582 4250.15081 3340.6953 4250.48355 3340.55308 4250.78554 3340.35374 4251.04709 3340.10367 4251.25978 3339.81093 4251.41678 3339.48491 4251.51305 3339.1361 4251.54548 3338.7757 4251.51305 3338.4153 4251.41678 3338.06649 4251.25978 3337.74047 4251.07831 3337.49071 4251.00969 3337.33407 4251.01276 3337.16309 4251.08696 3337.00902 4251.21873 3336.90001 4251.38398 3336.856 4251.76653 3336.83882 4252.11931 3336.7583 4252.45205 3336.61608 4252.75404 3336.41674 4253.01559 3336.16667 4253.22828 3335.87393 4253.38528 3335.54791 4253.48155 3335.1991 4253.51398 3334.8387 4253.48155 3334.4783 4253.38528 3334.12949 4253.22828 3333.80347 4253.01559 3333.51073 4252.75404 3333.26066 4252.45205 3333.06132 4252.28006 3332.98781 4252.15172 3332.90011 4252.06651 3332.77011 4252.03728 3332.61744 4252.06846 3332.46515 4252.15534 3332.33625 4252.28479 3332.2502 4252.43727 3332.22 4255.40904 3332.22 4255.70399 3332.189 4255.966 3332.10387 4256.20916 3331.96348 4256.37449 3331.82227 4258.70856 3329.4882 4258.8952 3329.25772 4259.02027 3329.01226 4259.09294 3328.74104 4259.11 3328.52428 4259.11 3309.85329 4259.12601 3309.74126 4259.17276 3309.63819 4259.42864 3309.23837 4259.52748 3309.10233 4259.68448 3308.77631 4259.78075 3308.4275 4259.81318 3308.0671 4259.78075 3307.7067 4259.68448 3307.35789 4259.52748 3307.03187 4259.31479 3306.73913 4259.05324 3306.48906 4258.75125 3306.28972 4258.41851 3306.1475 4258.06573 3306.06698 4257.70425 3306.05075 4257.34567 3306.09932 4257.00152 3306.21114 4256.68288 3306.38261 4256.39997 3306.60822 4256.16189 3306.88072 4255.9763 3307.19136 4255.84915 3307.53014 4255.78454 3307.88617 4255.78454 3308.24803 4255.84915 3308.60406 4255.9763 3308.94284 4256.17236 3309.26545 4256.40647 3309.62168 4256.45379 3309.72526 4256.47 3309.83798 4256.47 3324.63794 4256.44449 3324.77849 4256.37123 3324.90112 4256.25955 3324.99018 4256.12369 3325.03432 4255.98099 3325.02791 4255.70353 3324.96458 4255.32098 3324.9474 4255.15573 3324.90339 4255.02396 3324.79438 4254.94976 3324.64031 4254.94669 3324.46933 4255.01531 3324.31269 4255.19678 3324.06293 4255.35378 3323.73691 4255.45005 3323.3881 4255.48248 3323.0277 4255.45005 3322.6673 4255.35378 3322.31849 4255.19678 3321.99247 4254.98409 3321.69973 4254.72254 3321.44966 4254.42055 3321.25032 4254.08781 3321.1081 4253.73503 3321.02758 4253.37355 3321.01135 4253.01497 3321.05992 4252.67082 3321.17174 4252.35015 3321.3443 4252.25081 3321.41961 4251.89795 3321.64647 4251.79437 3321.69379 4251.68164 3321.71 4224.63564 3321.71 4224.53258 3321.6965 4224.12378 3321.58749 4223.98451 3321.52114 4223.74463 3321.4372 4223.60467 3321.35287 4223.51012 3321.21961 4223.47674 3321.05965 4223.51012 3320.89969 4223.60467 3320.76643 4223.74463 3320.6821 4223.98451 3320.59816 4224.12642 3320.53015 4224.52632 3320.42351 4224.62939 3320.41 4225.88904 3320.41 4226.18399 3320.379 4226.446 3320.29387 4226.68916 3320.15348 4226.85449 3320.01227 4230.36856 3316.4982 4230.5552 3316.26772 4230.68027 3316.02226 4230.75294 3315.75104 4230.77 3315.53428 4230.77 3307.99245 4230.80045 3307.83937 4230.88716 3307.7096 4233.8196 3304.77716 4233.94937 3304.69045 4234.10245 3304.66 4234.50081 3304.66 4234.64346 3304.6863 4234.76735 3304.76174 4234.85619 3304.87641 4234.89829 3305.01521 4234.92699 3305.26991 4235.00224 3305.48496 4235.12346 3305.67788 4235.28457 3305.83899 4235.47749 3305.96021 4235.69254 3306.03546 4235.94141 3306.0635 4239.07159 3306.0635 4239.32046 3306.03546 4239.53551 3305.96021 4239.72843 3305.83899 4239.88954 3305.67788 4240.01076 3305.48496 4240.09445 3305.24579 4240.17878 3305.10584 4240.31204 3305.01128 4240.472 3304.97791 4240.63196 3305.01128 4240.76522 3305.10584 4240.84955 3305.24579 4240.93324 3305.48496 4241.05446 3305.67788 4241.21557 3305.83899 4241.40849 3305.96021 4241.64211 3306.04196 4241.78207 3306.12629 4241.87662 3306.25955 4241.91 3306.41951 4241.91 3306.86003 4241.8837 3307.00268 4241.80826 3307.12657 4241.69359 3307.21541 4241.55479 3307.25751 4241.42629 3307.27199 4241.21124 3307.34724 4241.01832 3307.46846 4240.85721 3307.62957 4240.81069 3307.70361 4240.69979 3307.81959 4240.55224 3307.88266 4240.39176 3307.88266 4240.24421 3307.81959 4240.13331 3307.70361 4240.08679 3307.62957 4239.92568 3307.46846 4239.73276 3307.34724 4239.51771 3307.27199 4239.26884 3307.24395 4238.7539 3307.24395 4238.7539 3308.89977 4240.2327 3308.89977 4240.38577 3308.93022 4240.51554 3309.01693 4240.60225 3309.1467 4240.6327 3309.29977 4240.6327 3310.77142 4240.60225 3310.9245 4240.51554 3311.05427 4240.38577 3311.14098 4240.2327 3311.17142 4238.7539 3311.17142 4238.7539 3312.82725 4239.26884 3312.82725 4239.51771 3312.79921 4239.73276 3312.72396 4239.92568 3312.60274 4240.08679 3312.44163 4240.13331 3312.36759 4240.24421 3312.25161 4240.39176 3312.18854 4240.55224 3312.18854 4240.69979 3312.25161 4240.81069 3312.36759 4240.85721 3312.44163 4241.01832 3312.60274 4241.21124 3312.72396 4241.42352 3312.79824 4241.73901 3312.82916 4241.87971 3312.8699 4241.99632 3312.95855 4242.07318 3313.08325 4242.1 3313.22725 4242.1 3313.37824 4242.08379 3313.49096 4242.03647 3313.59454 4241.78909 3313.96732 4241.6035 3314.27796 4241.47635 3314.61674 4241.41174 3314.97277 4241.41174 3315.33463 4241.47635 3315.69066 4241.6035 3316.02944 4241.78909 3316.34008 4242.02717 3316.61258 4242.31008 3316.83819 4242.62872 3317.00966 4242.97287 3317.12148 4243.33145 3317.17005 4243.69293 3317.15382 4244.04571 3317.0733 4244.37845 3316.93108 4244.68044 3316.73174 4244.94199 3316.48167 4245.15468 3316.18893 4245.31168 3315.86291 4245.40795 3315.5141 4245.44038 3315.1537 4245.40795 3314.7933 4245.31168 3314.44449 4245.15361 3314.11625 4245.02988 3313.9408 4244.80353 3313.58869 4244.75621 3313.48511 4244.74 3313.37239 4244.74 3313.18405 4244.77338 3313.02409 4244.86793 3312.89083 4245.00789 3312.80649 4245.24376 3312.72396 4245.43668 3312.60274 4245.59779 3312.44163 4245.71901 3312.24871 4245.79426 3312.03366 4245.8223 3311.78479 4245.8223 3308.28641 4245.79426 3308.03754 4245.71901 3307.82249 4245.59779 3307.62957 4245.43668 3307.46846 4245.24376 3307.34724 4245.02871 3307.27199 4244.90521 3307.25808 4244.76641 3307.21597 4244.65174 3307.12713 4244.5763 3307.00324 4244.55 3306.86059 4244.55 3306.4635 4244.58045 3306.31043 4244.66716 3306.18066 4244.79693 3306.09395 4245.25146 3306.03546 4245.46651 3305.96021 4245.65943 3305.83899 4245.82054 3305.67788 4245.94176 3305.48496 4246.01701 3305.26991 4246.04505 3305.02104 4246.04505 3301.66436 4246.01701 3301.41549 4245.94176 3301.20044 4245.82054 3301.00752 4245.65943 3300.84641 4245.46651 3300.72519 4245.25146 3300.64994 4245.00259 3300.6219 4241.87241 3300.6219 4241.62354 3300.64994 4241.40849 3300.72519 4241.21557 3300.84641 4241.05446 3301.00752 4240.93324 3301.20044 4240.84955 3301.43961 4240.76522 3301.57956 4240.63196 3301.67412 4240.472 3301.70749 4240.31204 3301.67412 4240.17878 3301.57956 4240.09445 3301.43961 4240.01076 3301.20044 4239.88954 3301.00752 4239.72843 3300.84641 4239.53551 3300.72519 4239.32046 3300.64994 4239.18521 3300.6347 4239.04641 3300.5926 4238.93174 3300.50376 4238.8563 3300.37987 4238.83 3300.23722 4238.83 3295.8 4238.86045 3295.64693 4238.94716 3295.51716 4239.07693 3295.43045 4239.23 3295.4 4267.82904 3295.4 4268.12399 3295.369 4268.386 3295.28387 4268.62916 3295.14348 4268.79449 3295.00227 4281.54856 3282.2482 4281.7352 3282.01772 4281.86027 3281.77226 4281.93294 3281.50104 4281.95 3281.28428 4281.95 3278.99862 4281.9763 3278.85597 4282.05174 3278.73208 4282.16641 3278.64324 4282.30521 3278.60113 4282.55661 3278.57281 4282.77166 3278.49756 4282.96458 3278.37634 4283.12569 3278.21523 4283.24691 3278.02231 4283.32216 3277.80726 4283.33816 3277.66521 4283.38027 3277.52641 4283.46911 3277.41174 4283.593 3277.3363 4283.73565 3277.31 4284.33904 3277.31 4284.63399 3277.279 4284.896 3277.19387 4285.13916 3277.05348 4285.30449 3276.91227 4288.63856 3273.5782 4288.8252 3273.34772 4288.95027 3273.10226 4289.02294 3272.83104 4289.04 3272.61428 4289.04 3199.33245 4289.07045 3199.17937 4289.15716 3199.0496 4291.06804 3197.13872 4291.18546 3197.05738 4291.32397 3197.02247 4291.46592 3197.03847 4291.5932 3197.10332 4291.68957 3197.20875 4291.81626 3197.41038 4291.97737 3197.57149 4292.17029 3197.69271 4292.38534 3197.76796 4292.63421 3197.796 4295.76439 3197.796 4296.01326 3197.76796 4296.22831 3197.69271 4296.42123 3197.57149 4296.58234 3197.41038 4296.70356 3197.21746 4296.78725 3196.97829 4296.87158 3196.83834 4297.00484 3196.74378 4297.1648 3196.71041 4297.32476 3196.74378 4297.45802 3196.83834 4297.54235 3196.97829 4297.62604 3197.21746 4297.74726 3197.41038 4297.90837 3197.57149 4298.10129 3197.69271 4298.31634 3197.76796 4298.45479 3197.78356 4298.59359 3197.82566 4298.70826 3197.9145 4298.7837 3198.03839 4298.81 3198.18104 4298.81 3198.57645 4298.77955 3198.72952 4298.69284 3198.85929 4298.56307 3198.946 4298.36796 3198.97645 4298.11909 3199.00449 4297.90404 3199.07974 4297.71112 3199.20096 4297.55001 3199.36207 4297.50349 3199.43611 4297.39259 3199.55209 4297.24504 3199.61516 4297.08456 3199.61516 4296.93701 3199.55209 4296.82611 3199.43611 4296.77959 3199.36207 4296.61848 3199.20096 4296.42556 3199.07974 4296.21051 3199.00449 4295.96164 3198.97645 4295.4467 3198.97645 4295.4467 3200.63227 4296.9255 3200.63227 4297.07857 3200.66272 4297.20834 3200.74943 4297.29505 3200.8792 4297.3255 3201.03228 4297.3255 3202.50393 4297.29505 3202.657 4297.20834 3202.78677 4297.07857 3202.87348 4296.9255 3202.90393 4295.4467 3202.90393 4295.4467 3204.55975 4295.96164 3204.55975 4296.21051 3204.53171 4296.42556 3204.45646 4296.61848 3204.33524 4296.77959 3204.17413 4296.82611 3204.10009 4296.93701 3203.98411 4297.08456 3203.92104 4297.24504 3203.92104 4297.39259 3203.98411 4297.50349 3204.10009 4297.55001 3204.17413 4297.71112 3204.33524 4297.90404 3204.45646 4298.11595 3204.53061 4298.43826 3204.56158 4298.57921 3204.60214 4298.69606 3204.69078 4298.77311 3204.81557 4298.8 3204.95975 4298.8 3208.37929 4298.77146 3208.52766 4298.68993 3208.65486 4296.81945 3210.6228 4296.42585 3211.09212 4296.11884 3211.57589 4295.87489 3212.09433 4295.69783 3212.63925 4295.59047 3213.20207 4295.55449 3213.7739 4295.59047 3214.34573 4295.69783 3214.90855 4295.87489 3215.45347 4296.11884 3215.97191 4296.42585 3216.45568 4296.79107 3216.89715 4297.20875 3217.28937 4297.67229 3217.62615 4298.17438 3217.90218 4298.70711 3218.1131 4299.26207 3218.25559 4299.83052 3218.32741 4300.40348 3218.32741 4300.97193 3218.25559 4301.52689 3218.1131 4302.05962 3217.90218 4302.56171 3217.62615 4303.02525 3217.28937 4303.44293 3216.89715 4303.80815 3216.45568 4304.11516 3215.97191 4304.35911 3215.45347 4304.53617 3214.90855 4304.64353 3214.34573 4304.67951 3213.7739 4304.64353 3213.20207 4304.53617 3212.63925 4304.35911 3212.09433 4304.11516 3211.57589 4303.80724 3211.09069 4303.50284 3210.71633 4301.55007 3208.66181 4301.46854 3208.53461 4301.44 3208.38624 4301.44 3204.91403 4301.47338 3204.75407 4301.56793 3204.62081 4301.70789 3204.53647 4301.93656 3204.45646 4302.12948 3204.33524 4302.29059 3204.17413 4302.41181 3203.98121 4302.48706 3203.76616 4302.5151 3203.51729 4302.5151 3200.01891 4302.48706 3199.77004 4302.41181 3199.55499 4302.29059 3199.36207 4302.12948 3199.20096 4301.93656 3199.07974 4301.71789 3199.00322 4301.57793 3198.91889 4301.48338 3198.78563 4301.45 3198.62567 4301.45 3198.18111 4301.4763 3198.03846 4301.55174 3197.91457 4301.66641 3197.82573 4301.80521 3197.78363 4301.94426 3197.76796 4302.15931 3197.69271 4302.35223 3197.57149 4302.51334 3197.41038 4302.63456 3197.21746 4302.70981 3197.00241 4302.73785 3196.75354 4302.73785 3193.39686 4302.70981 3193.14799 4302.63456 3192.93294 4302.51334 3192.74002 4302.35223 3192.57891 4302.15931 3192.45769 4301.94426 3192.38244 4301.69539 3192.3544 4298.56521 3192.3544 4298.31634 3192.38244 4298.10129 3192.45769 4297.90837 3192.57891 4297.74726 3192.74002 4297.62604 3192.93294 4297.54235 3193.17211 4297.45802 3193.31206 4297.32476 3193.40662 4297.1648 3193.43999 4297.00484 3193.40662 4296.87158 3193.31206 4296.78725 3193.17211 4296.70356 3192.93294 4296.58234 3192.74002 4296.42123 3192.57891 4296.22831 3192.45769 4296.01326 3192.38244 4295.87521 3192.36689 4295.73641 3192.32478 4295.62174 3192.23594 4295.5463 3192.11205 4295.52 3191.9694 4295.52 3157.48096 4295.489 3157.18601 4295.40387 3156.924 4295.26348 3156.68084 4295.12227 3156.51551 4284.1282 3145.52144 4283.89772 3145.3348 4283.65226 3145.20973 4283.38104 3145.13706 4283.16428 3145.12 4281.76672 3145.12 4281.62407 3145.0937 4281.50018 3145.01826 4281.41134 3144.90359 4281.36924 3144.76479 4281.35366 3144.62654 4281.27841 3144.41149 4281.15719 3144.21857 4280.99608 3144.05746 4280.80316 3143.93624 4280.58811 3143.86099 4280.33924 3143.83295 4276.98256 3143.83295 4276.73369 3143.86099 4276.51864 3143.93624 4276.32572 3144.05746 4276.16461 3144.21857 4276.04339 3144.41149 4275.96814 3144.62654 4275.9401 3144.87541 4275.9401 3148.00559 4275.96814 3148.25446 4276.04339 3148.46951 4276.16461 3148.66243 4276.32572 3148.82354 4276.51864 3148.94476 4276.75781 3149.02845 4276.89776 3149.11278 4276.99232 3149.24604 4277.02569 3149.406 4276.99232 3149.56596 4276.89776 3149.69922 4276.75781 3149.78355 4276.51864 3149.86724 4276.32572 3149.98846 4276.16461 3150.14957 4276.04339 3150.34249 4275.96814 3150.55754 4275.95268 3150.69479 4275.91057 3150.83359 4275.82173 3150.94826 4275.69784 3151.0237 4275.55519 3151.05 4275.15965 3151.05 4275.00658 3151.01955 4274.87681 3150.93284 4274.7901 3150.80307 4274.75965 3150.60916 4274.73161 3150.36029 4274.65636 3150.14524 4274.53514 3149.95232 4274.37403 3149.79121 4274.29999 3149.74469 4274.18401 3149.63379 4274.12094 3149.48624 4274.12094 3149.32576 4274.18401 3149.17821 4274.29999 3149.06731 4274.37403 3149.02079 4274.53514 3148.85968 4274.65636 3148.66676 4274.73161 3148.45171 4274.75965 3148.20284 4274.75965 3147.6879 4273.10383 3147.6879 4273.10383 3149.1667 4273.07338 3149.31977 4272.98667 3149.44954 4272.8569 3149.53625 4272.70383 3149.5667 4271.23217 3149.5667 4271.0791 3149.53625 4270.94933 3149.44954 4270.86262 3149.31977 4270.83217 3149.1667 4270.83217 3147.6879 4269.17635 3147.6879 4269.17635 3148.20284 4269.20439 3148.45171 4269.27964 3148.66676 4269.40086 3148.85968 4269.56197 3149.02079 4269.63601 3149.06731 4269.75199 3149.17821 4269.81506 3149.32576 4269.81506 3149.48624 4269.75199 3149.63379 4269.63601 3149.74469 4269.56197 3149.79121 4269.40086 3149.95232 4269.27964 3150.14524 4269.20547 3150.35721 4269.1745 3150.67839 4269.13392 3150.81929 4269.04528 3150.9361 4268.9205 3151.01312 4268.77635 3151.04 4265.98892 3151.04 4265.84204 3151.01206 4265.71568 3150.93213 4263.92769 3149.25972 4263.68113 3149.05463 4263.22337 3148.74876 4262.73431 3148.50758 4262.21795 3148.3323 4261.68313 3148.22592 4261.139 3148.19026 4260.59487 3148.22592 4260.06005 3148.3323 4259.54369 3148.50758 4259.05463 3148.74876 4258.60123 3149.05171 4258.19125 3149.41125 4257.83171 3149.82123 4257.52876 3150.27463 4257.28758 3150.76369 4257.1123 3151.28005 4257.00592 3151.81487 4256.97026 3152.359 4257.00592 3152.90313 4257.1123 3153.43795 4257.28758 3153.95431 4257.52876 3154.44337 4257.83171 3154.89677 4258.19125 3155.30675 4258.60123 3155.66629 4259.05463 3155.96924 4259.54369 3156.21042 4260.06005 3156.3857 4260.59487 3156.49208 4261.139 3156.52774 4261.68313 3156.49208 4262.21795 3156.3857 4262.73431 3156.21042 4263.22337 3155.96924 4263.67677 3155.66629 4263.9356 3155.45067 4265.71331 3153.78787 4265.83967 3153.70794 4265.98655 3153.68 4268.82165 3153.68 4268.98161 3153.71338 4269.11487 3153.80793 4269.19921 3153.94789 4269.27964 3154.17776 4269.40086 3154.37068 4269.56197 3154.53179 4269.75489 3154.65301 4269.96994 3154.72826 4270.21881 3154.7563 4273.71719 3154.7563 4273.96606 3154.72826 4274.18111 3154.65301 4274.37403 3154.53179 4274.53514 3154.37068 4274.65636 3154.17776 4274.7333 3153.95789 4274.81763 3153.81793 4274.95089 3153.72338 4275.11085 3153.69 4275.55485 3153.69 4275.6975 3153.7163 4275.82139 3153.79174 4275.91023 3153.90641 4275.95234 3154.04521 4275.96814 3154.18546 4276.04339 3154.40051 4276.16461 3154.59343 4276.32572 3154.75454 4276.51864 3154.87576 4276.73369 3154.95101 4276.98256 3154.97905 4280.33924 3154.97905 4280.58811 3154.95101 4280.80316 3154.87576 4280.99608 3154.75454 4281.15719 3154.59343 4281.27841 3154.40051 4281.35366 3154.18546 4281.3817 3153.93659 4281.3817 3150.80641 4281.35366 3150.55754 4281.27841 3150.34249 4281.15719 3150.14957 4280.99608 3149.98846 4280.80316 3149.86724 4280.56399 3149.78355 4280.42404 3149.69922 4280.32948 3149.56596 4280.29611 3149.406 4280.32948 3149.24604 4280.42404 3149.11278 4280.56399 3149.02845 4280.80316 3148.94476 4280.99608 3148.82354 4281.15719 3148.66243 4281.27841 3148.46951 4281.35366 3148.25446 4281.36935 3148.11521 4281.41145 3147.97641 4281.50029 3147.86174 4281.62418 3147.7863 4281.76683 3147.76 4282.46755 3147.76 4282.62063 3147.79045 4282.7504 3147.87716 4292.76284 3157.8896 4292.84955 3158.01937 4292.88 3158.17245 4292.88 3191.96924 4292.8537 3192.11189 4292.77826 3192.23578 4292.66359 3192.32462 4292.52479 3192.36673 4292.38534 3192.38244 4292.17029 3192.45769 4291.97737 3192.57891 4291.81626 3192.74002 4291.69504 3192.93294 4291.61979 3193.14799 4291.59006 3193.41187 4291.55264 3193.54131 4291.47436 3193.65099 4291.3641 3193.72844 4291.23439 3193.7649 4290.98601 3193.791 4290.724 3193.87613 4290.48084 3194.01652 4290.31551 3194.15773 4286.80144 3197.6718 4286.6148 3197.90228 4286.48973 3198.14774 4286.41706 3198.41896 4286.4 3198.63572 4286.4 3271.91755 4286.36955 3272.07063 4286.28284 3272.2004 4284.0089 3274.47434 4283.88602 3274.55812 4283.74102 3274.59121 4283.59395 3274.56905 4283.46514 3274.49468 4283.37241 3274.3784 4283.32216 3274.17934 4283.24691 3273.96429 4283.12569 3273.77137 4282.96458 3273.61026 4282.77166 3273.48904 4282.53249 3273.40535 4282.39254 3273.32102 4282.29798 3273.18776 4282.26461 3273.0278 4282.29798 3272.86784 4282.39254 3272.73458 4282.53249 3272.65025 4282.77166 3272.56656 4282.96458 3272.44534 4283.12569 3272.28423 4283.24691 3272.09131 4283.32216 3271.87626 4283.3502 3271.62739 4283.3502 3268.49721 4283.32216 3268.24834 4283.24691 3268.03329 4283.12569 3267.84037 4282.96458 3267.67926 4282.77166 3267.55804 4282.55661 3267.48279 4282.30774 3267.45475 4278.95106 3267.45475 4278.70219 3267.48279 4278.48714 3267.55804 4278.29422 3267.67926 4278.13311 3267.84037 4278.01189 3268.03329 4277.93664 3268.24834 4277.9086 3268.55 4277.87815 3268.70307 4277.79144 3268.83284 4277.66167 3268.91955 4277.5086 3268.95 4277.11153 3268.95 4276.96888 3268.9237 4276.84499 3268.84826 4276.75615 3268.73359 4276.71405 3268.59479 4276.70011 3268.47109 4276.62486 3268.25604 4276.50364 3268.06312 4276.34253 3267.90201 4276.14961 3267.78079 4275.93456 3267.70554 4275.68569 3267.6775 4272.18731 3267.6775 4271.93844 3267.70554 4271.72339 3267.78079 4271.53047 3267.90201 4271.36936 3268.06312 4271.24814 3268.25604 4271.17395 3268.46805 4271.143 3268.78847 4271.10239 3268.92935 4271.01375 3269.04613 4270.88898 3269.12313 4270.74485 3269.15 4266.53616 3269.15 4266.38779 3269.12146 4266.26059 3269.03993 4264.29013 3267.16705 4263.82268 3266.77545 4263.33891 3266.46844 4262.82047 3266.22449 4262.27555 3266.04743 4261.71273 3265.94007 4261.1409 3265.90409 4260.56907 3265.94007 4260.00625 3266.04743 4259.46133 3266.22449 4258.94289 3266.46844 4258.45912 3266.77545 4258.01765 3267.14067 4257.62543 3267.55835 4257.28865 3268.02189 4257.01262 3268.52398 4256.8017 3269.05671 4256.65921 3269.61167 4256.58739 3270.18012 4256.58739 3270.75308 4256.65921 3271.32153 4256.8017 3271.87649 4257.01262 3272.40922 4257.28865 3272.91131 4257.62543 3273.37485 4258.01765 3273.79253 4258.45912 3274.15775 4258.94289 3274.46476 4259.46133 3274.70871 4260.00625 3274.88577 4260.56907 3274.99313 4261.1409 3275.02911 4261.71273 3274.99313 4262.27555 3274.88577 4262.82047 3274.70871 4263.33891 3274.46476 4263.82416 3274.1568 4264.19876 3273.8524 4266.25282 3271.90007 4266.38002 3271.81854 4266.52839 3271.79 4270.78987 3271.79 4270.94983 3271.82338 4271.08309 3271.91793 4271.16743 3272.05789 4271.24814 3272.28856 4271.36936 3272.48148 4271.53047 3272.64259 4271.60451 3272.68911 4271.72049 3272.80001 4271.78356 3272.94756 4271.78356 3273.10804 4271.72049 3273.25559 4271.60451 3273.36649 4271.53047 3273.41301 4271.36936 3273.57412 4271.24814 3273.76704 4271.17289 3273.98209 4271.14485 3274.23096 4271.14485 3274.7459 4272.80068 3274.7459 4272.80068 3273.2671 4272.83112 3273.11403 4272.91783 3272.98426 4273.0476 3272.89755 4273.20068 3272.8671 4274.67232 3272.8671 4274.8254 3272.89755 4274.95517 3272.98426 4275.04188 3273.11403 4275.07232 3273.2671 4275.07232 3274.7459 4276.72815 3274.7459 4276.72815 3274.23096 4276.70011 3273.98209 4276.62486 3273.76704 4276.50364 3273.57412 4276.34253 3273.41301 4276.26849 3273.36649 4276.15251 3273.25559 4276.08944 3273.10804 4276.08944 3272.94756 4276.15251 3272.80001 4276.26849 3272.68911 4276.34253 3272.64259 4276.50364 3272.48148 4276.62486 3272.28856 4276.70011 3272.07351 4276.71456 3271.94521 4276.75667 3271.80641 4276.84551 3271.69174 4276.9694 3271.6163 4277.11205 3271.59 4277.55266 3271.59 4277.71262 3271.62338 4277.84588 3271.71793 4277.93021 3271.85789 4278.01189 3272.09131 4278.13311 3272.28423 4278.29422 3272.44534 4278.48714 3272.56656 4278.72631 3272.65025 4278.86626 3272.73458 4278.96082 3272.86784 4278.99419 3273.0278 4278.96082 3273.18776 4278.86626 3273.32102 4278.72631 3273.40535 4278.48714 3273.48904 4278.29422 3273.61026 4278.13311 3273.77137 4278.01189 3273.96429 4277.93664 3274.17934 4277.9086 3274.42821 4277.9086 3277.55839 4277.93664 3277.80726 4278.01189 3278.02231 4278.13311 3278.21523 4278.29422 3278.37634 4278.48714 3278.49756 4278.70219 3278.57281 4278.95479 3278.60127 4279.09359 3278.64338 4279.20826 3278.73222 4279.2837 3278.85611 4279.31 3278.99875 4279.31 3280.58755 4279.27955 3280.74063 4279.19284 3280.8704 4267.4204 3292.64284 4267.29063 3292.72955 4267.13755 3292.76 4238.22245 3292.76 4238.06937 3292.72955 4237.9396 3292.64284 4211.40716 3266.1104 4211.32045 3265.98063 4211.29 3265.82755 4211.29 3252.51201 4211.3163 3252.36937 4211.39174 3252.24548 4211.50641 3252.15664 4211.64521 3252.11453 4211.78696 3252.09856 4212.00201 3252.02331 4212.19493 3251.90209 4212.35604 3251.74098 4212.47726 3251.54806 4212.55251 3251.33301 4212.58043 3251.08521 4212.62254 3250.94641 4212.71137 3250.83174 4212.83526 3250.7563 4212.97791 3250.73 4220.76904 3250.73 4221.06399 3250.699 4221.326 3250.61387 4221.56916 3250.47348 4221.73449 3250.33227 4226.03856 3246.0282 4226.2252 3245.79772 4226.35027 3245.55226 4226.42294 3245.28104 4226.44 3245.06428 4226.44 3184.11673 4226.4663 3183.97408 4226.54174 3183.85019 4226.65641 3183.76135 4226.79521 3183.71924 4227.04491 3183.69111 4227.25996 3183.61586 4227.45288 3183.49464 4227.61399 3183.33353 4227.73521 3183.14061 4227.81046 3182.92556 4227.8385 3182.67669 4227.8385 3179.54651 4227.81046 3179.29764 4227.73521 3179.08259 4227.61399 3178.88967 4227.45288 3178.72856 4227.25996 3178.60734 4227.02079 3178.52365 4226.88084 3178.43932 4226.78628 3178.30606 4226.75291 3178.1461 4226.78628 3177.98614 4226.88084 3177.85288 4227.02079 3177.76855 4227.25996 3177.68486 4227.45288 3177.56364 4227.61399 3177.40253 4227.73521 3177.20961 4227.80947 3176.99738 4227.8404 3176.68108 4227.88111 3176.54035 4227.96977 3176.42372 4228.09448 3176.34683 4228.2385 3176.32 4228.63566 3176.32 4228.77831 3176.3463 4228.9022 3176.42174 4228.99104 3176.53641 4229.03314 3176.67521 4229.04699 3176.79811 4229.12224 3177.01316 4229.24346 3177.20608 4229.40457 3177.36719 4229.47861 3177.41371 4229.59459 3177.52461 4229.65766 3177.67216 4229.65766 3177.83264 4229.59459 3177.98019 4229.47861 3178.09109 4229.40457 3178.13761 4229.24346 3178.29872 4229.12224 3178.49164 4229.04699 3178.70669 4229.01895 3178.95556 4229.01895 3179.4705 4230.67478 3179.4705 4230.67478 3177.9917 4230.70522 3177.83863 4230.79193 3177.70886 4230.9217 3177.62215 4231.07478 3177.5917 4232.54643 3177.5917 4232.6995 3177.62215 4232.82927 3177.70886 4232.91598 3177.83863 4232.94643 3177.9917 4232.94643 3179.4705 4234.60225 3179.4705 4234.60225 3178.95556 4234.57421 3178.70669 4234.49896 3178.49164 4234.37774 3178.29872 4234.21663 3178.13761 4234.14259 3178.09109 4234.02661 3177.98019 4233.96354 3177.83264 4233.96354 3177.67216 4234.02661 3177.52461 4234.14259 3177.41371 4234.21663 3177.36719 4234.37774 3177.20608 4234.49896 3177.01316 4234.57316 3176.80111 4234.60411 3176.48145 4234.64474 3176.3406 4234.73338 3176.22384 4234.85814 3176.14686 4235.00225 3176.12 4238.03339 3176.12 4238.18176 3176.14854 4238.30896 3176.23007 4240.2719 3178.09579 4240.74212 3178.49035 4241.22589 3178.79736 4241.74433 3179.04131 4242.28925 3179.21837 4242.85207 3179.32573 4243.4239 3179.36171 4243.99573 3179.32573 4244.55855 3179.21837 4245.10347 3179.04131 4245.62191 3178.79736 4246.10568 3178.49035 4246.54715 3178.12513 4246.93937 3177.70745 4247.27615 3177.24391 4247.55218 3176.74182 4247.7631 3176.20909 4247.90559 3175.65413 4247.97741 3175.08568 4247.97741 3174.51272 4247.90559 3173.94427 4247.7631 3173.38931 4247.55218 3172.85658 4247.27615 3172.35449 4246.93937 3171.89095 4246.54715 3171.47327 4246.10568 3171.10805 4245.62191 3170.80104 4245.10347 3170.55709 4244.55855 3170.38003 4243.99573 3170.27267 4243.4239 3170.23669 4242.85207 3170.27267 4242.28925 3170.38003 4241.74433 3170.55709 4241.22589 3170.80104 4240.74062 3171.109 4240.36618 3171.41323 4238.30753 3173.36993 4238.18033 3173.45146 4238.03196 3173.48 4234.95751 3173.48 4234.79755 3173.44662 4234.66429 3173.35207 4234.57995 3173.21211 4234.49896 3172.98064 4234.37774 3172.78772 4234.21663 3172.62661 4234.02371 3172.50539 4233.80866 3172.43014 4233.55979 3172.4021 4230.06141 3172.4021 4229.81254 3172.43014 4229.59749 3172.50539 4229.40457 3172.62661 4229.24346 3172.78772 4229.12224 3172.98064 4229.04699 3173.19569 4229.03245 3173.32479 4228.99034 3173.46359 4228.9015 3173.57826 4228.77761 3173.6537 4228.63496 3173.68 4228.20323 3173.68 4228.04302 3173.64652 4227.90964 3173.55167 4227.82541 3173.41134 4227.73499 3173.15124 4227.61399 3172.95867 4227.45288 3172.79756 4227.25996 3172.67634 4227.04491 3172.60109 4226.79604 3172.57305 4223.43936 3172.57305 4223.19049 3172.60109 4222.97544 3172.67634 4222.78252 3172.79756 4222.62141 3172.95867 4222.50019 3173.15159 4222.42494 3173.36664 4222.3969 3173.61551 4222.3969 3176.74569 4222.42494 3176.99456 4222.50019 3177.20961 4222.62141 3177.40253 4222.78252 3177.56364 4222.97544 3177.68486 4223.21461 3177.76855 4223.35456 3177.85288 4223.44912 3177.98614 4223.48249 3178.1461 4223.44912 3178.30606 4223.35456 3178.43932 4223.21461 3178.52365 4222.97544 3178.60734 4222.78252 3178.72856 4222.62141 3178.88967 4222.50019 3179.08259 4222.42494 3179.29764 4222.3969 3179.54651 4222.3969 3182.67669 4222.42494 3182.92556 4222.50019 3183.14061 4222.62141 3183.33353 4222.78252 3183.49464 4222.97544 3183.61586 4223.19049 3183.69111 4223.44479 3183.71976 4223.58359 3183.76187 4223.69826 3183.85071 4223.7737 3183.9746 4223.8 3184.11725 4223.8 3244.36755 4223.76955 3244.52063 4223.68284 3244.6504 4220.3604 3247.97284 4220.23063 3248.05955 4220.07755 3248.09 4212.97886 3248.09 4212.83621 3248.0637 4212.71232 3247.98826 4212.62348 3247.87359 4212.58138 3247.73479 4212.55251 3247.47859 4212.47726 3247.26354 4212.35604 3247.07062 4212.19493 3246.90951 4212.00201 3246.78829 4211.78696 3246.71304 4211.53809 3246.685 4208.40791 3246.685 4208.15904 3246.71304 4207.94399 3246.78829 4207.75107 3246.90951 4207.58996 3247.07062 4207.46874 3247.26354 4207.38505 3247.50271 4207.30072 3247.64266 4207.16746 3247.73722 4207.0075 3247.77059 4206.84754 3247.73722 4206.71428 3247.64266 4206.62995 3247.50271 4206.54626 3247.26354 4206.42504 3247.07062 4206.26393 3246.90951 4206.07101 3246.78829 4205.83789 3246.70672 4205.69793 3246.62239 4205.60338 3246.48912 4205.57 3246.32916 4205.57 3245.88842 4205.5963 3245.74577 4205.67174 3245.62188 4205.78641 3245.53304 4205.92521 3245.49093 4206.05321 3245.47651 4206.26826 3245.40126 4206.46118 3245.28004 4206.62229 3245.11893 4206.66881 3245.04489 4206.77971 3244.92891 4206.92726 3244.86584 4207.08774 3244.86584 4207.23529 3244.92891 4207.34619 3245.04489 4207.39271 3245.11893 4207.55382 3245.28004 4207.74674 3245.40126 4207.96179 3245.47651 4208.21066 3245.50455 4208.7256 3245.50455 4208.7256 3243.84873 4207.2468 3243.84873 4207.09373 3243.81828 4206.96396 3243.73157 4206.87725 3243.6018 4206.8468 3243.44873 4206.8468 3241.97707 4206.87725 3241.824 4206.96396 3241.69423 4207.09373 3241.60752 4207.2468 3241.57707 4208.7256 3241.57707 4208.7256 3239.92125 4208.21066 3239.92125 4207.96179 3239.94929 4207.74674 3240.02454 4207.55382 3240.14576 4207.39271 3240.30687 4207.34619 3240.38091 4207.23529 3240.49689 4207.08774 3240.55996 4206.92726 3240.55996 4206.77971 3240.49689 4206.66881 3240.38091 4206.62229 3240.30687 4206.46118 3240.14576 4206.26826 3240.02454 4206.03789 3239.94393 4205.89793 3239.8596 4205.80338 3239.72633 4205.77 3239.56638 4205.77 3236.88182 4205.79854 3236.73345 4205.88007 3236.60625 4207.7461 3234.64298 4208.14075 3234.17268 4208.44776 3233.68891 4208.69171 3233.17047 4208.86877 3232.62555 4208.97613 3232.06273 4209.01211 3231.4909 4208.97613 3230.91907 4208.86877 3230.35625 4208.69171 3229.81133 4208.44776 3229.29289 4208.14075 3228.80912 4207.77553 3228.36765 4207.35785 3227.97543 4206.89431 3227.63865 4206.39222 3227.36262 4205.85949 3227.1517 4205.30453 3227.00921 4204.73608 3226.93739 4204.16312 3226.93739 4203.59467 3227.00921 4203.03971 3227.1517 4202.50698 3227.36262 4202.00489 3227.63865 4201.54135 3227.97543 4201.12367 3228.36765 4200.75845 3228.80912 4200.45144 3229.29289 4200.20749 3229.81133 4200.03043 3230.35625 4199.92307 3230.91907 4199.88709 3231.4909 4199.92307 3232.06273 4200.03043 3232.62555 4200.20749 3233.17047 4200.45144 3233.68891 4200.75941 3234.17418 4201.06362 3234.54862 4203.01993 3236.60686 4203.10146 3236.73406 4203.13 3236.88243 4203.13 3239.52125 4203.10313 3239.66539 4203.02612 3239.79016 4202.90933 3239.8788 4202.76844 3239.9194 4202.44774 3239.95036 4202.23574 3240.02454 4202.04282 3240.14576 4201.88171 3240.30687 4201.76049 3240.49979 4201.68524 3240.71484 4201.6572 3240.96371 4201.6572 3244.46209 4201.68524 3244.71096 4201.76049 3244.92601 4201.88171 3245.11893 4202.04282 3245.28004 4202.23574 3245.40126 4202.45079 3245.47651 4202.57479 3245.49048 4202.71359 3245.53259 4202.82826 3245.62143 4202.9037 3245.74532 4202.93 3245.88796 4202.93 3246.285 4202.89955 3246.43807 4202.81284 3246.56784 4202.68307 3246.65455 4202.22804 3246.71304 4202.01299 3246.78829 4201.82007 3246.90951 4201.65896 3247.07062 4201.53774 3247.26354 4201.46249 3247.47859 4201.43445 3247.72746 4201.43445 3251.08414 4201.46249 3251.33301 4201.53774 3251.54806 4201.65896 3251.74098 4201.82007 3251.90209 4202.01299 3252.02331 4202.22804 3252.09856 4202.47691 3252.1266 4205.60709 3252.1266 4205.85596 3252.09856 4206.07101 3252.02331 4206.26393 3251.90209 4206.42504 3251.74098 4206.54626 3251.54806 4206.62995 3251.30889 4206.71428 3251.16894 4206.84754 3251.07438 4207.0075 3251.04101 4207.16746 3251.07438 4207.30072 3251.16894 4207.38505 3251.30889 4207.46874 3251.54806 4207.58996 3251.74098 4207.75107 3251.90209 4207.94399 3252.02331 4208.15904 3252.09856 4208.29479 3252.11385 4208.43359 3252.15596 4208.54826 3252.2448 4208.6237 3252.36869 4208.65 3252.51134 4208.65 3266.51904 4208.681 3266.81399 4208.76613 3267.076 4208.90652 3267.31916 4209.04773 3267.48449 4236.07284 3294.5096 4236.15955 3294.63937 4236.19 3294.79245 4236.19 3300.23643 4236.1637 3300.37908 4236.08826 3300.50297 4235.97359 3300.59181 4235.83479 3300.63391 4235.69254 3300.64994 4235.47749 3300.72519 4235.28457 3300.84641 4235.12346 3301.00752 4235.00224 3301.20044 4234.92699 3301.41549 4234.8989 3301.66479 4234.8568 3301.80359 4234.76796 3301.91826 4234.64407 3301.9937 4234.50142 3302.02 4233.41096 3302.02 4233.11601 3302.051 4232.854 3302.13613 4232.61084 3302.27652 4232.44551 3302.41773 4228.53144 3306.3318 4228.3448 3306.56228 4228.21973 3306.80774 4228.14706 3307.07896 4228.13 3307.29572 4228.13 3314.83755 4228.09955 3314.99063 4228.01284 3315.1204 4225.4804 3317.65284 4225.35063 3317.73955 4225.19755 3317.77 4224.62871 3317.77 4224.52565 3317.75649 4224.12194 3317.64884 4223.98451 3317.58364 4223.76946 3317.50839 4223.52059 3317.48035 4218.64421 3317.48035 4218.39534 3317.50839 4218.18029 3317.58364 4217.98737 3317.70486 4217.82626 3317.86597 4217.70504 3318.05889 4217.62979 3318.27394 4217.60175 3318.52281 4217.60175 3319.65899 4217.62979 3319.90786 4217.70504 3320.12291 4217.82626 3320.31583 4217.98737 3320.47694 4218.18029 3320.59816 4218.42017 3320.6821 4218.56013 3320.76643 4218.65468 3320.89969 4218.68806 3321.05965 4218.65468 3321.21961 4218.56013 3321.35287 4218.42017 3321.4372 4218.18029 3321.52114 4217.98737 3321.64236 4217.82626 3321.80347 4217.70504 3321.99639 4217.62979 3322.21144 4217.60175 3322.46031 4217.60175 3323.59649 4217.62979 3323.84536 4217.70504 3324.06041 4217.82626 3324.25333 4217.98737 3324.41444 4218.18029 3324.53566 4218.41946 3324.61935 4218.55941 3324.70368 4218.65397 3324.83694 4218.68734 3324.9969 4218.65397 3325.15686 4218.55941 3325.29012 4218.41946 3325.37445 4218.18029 3325.45814 4217.98737 3325.57936 4217.82626 3325.74047 4217.70504 3325.93339 4217.62979 3326.14844 4217.60175 3326.39731 4217.60175 3327.53349 4217.62979 3327.78236 4217.70504 3327.99741 4217.82626 3328.19033 4217.98737 3328.35144 4218.18029 3328.47266 4218.41946 3328.55635 4218.55941 3328.64068 4218.65397 3328.77394 4218.68734 3328.9339 4218.65397 3329.09386 4218.55941 3329.22712 4218.41946 3329.31145 4218.18029 3329.39514 4217.98737 3329.51636 4217.82626 3329.67747 4217.70504 3329.87039 4217.62979 3330.08544 4217.60175 3330.33431 4217.60175 3331.47049 4217.62979 3331.71936 4217.70504 3331.93441 4217.82626 3332.12733 4217.98737 3332.28844 4218.18029 3332.40966 4218.41946 3332.49335 4218.55941 3332.57768 4218.65397 3332.71094 4218.68734 3332.8709 4218.65397 3333.03086 4218.55941 3333.16412 4218.41946 3333.24845 4218.18029 3333.33214 4217.98737 3333.45336 4217.82626 3333.61447 4217.70504 3333.80739 4217.62979 3334.02244 4217.60175 3334.27131 4217.60175 3335.40749 4217.62979 3335.65636 4217.70504 3335.87141 4217.82626 3336.06433 4217.98737 3336.22544 4218.18029 3336.34666 4218.41946 3336.43035 4218.55941 3336.51468 4218.65397 3336.64794 4218.68734 3336.8079 4218.65397 3336.96786 4218.55941 3337.10112 4218.41946 3337.18545 4218.18029 3337.26914 4217.98737 3337.39036 4217.82626 3337.55147 4217.70504 3337.74439 4217.62979 3337.95944 4217.60175 3338.20831 4217.60175 3339.34449 4217.62979 3339.59336 4217.70504 3339.80841 4217.82626 3340.00133 4217.98737 3340.16244 4218.18029 3340.28366 4218.41946 3340.36735 4218.55941 3340.45168 4218.65397 3340.58494 4218.68734 3340.7449 4218.65397 3340.90486 4218.55941 3341.03812 4218.41946 3341.12245 4218.18029 3341.20614 4217.98737 3341.32736 4217.82626 3341.48847 4217.70504 3341.68139 4217.62979 3341.89644 4217.60175 3342.14531 4217.60175 3343.28149 4217.62979 3343.53036 4217.70504 3343.74541 4217.82626 3343.93833 4217.98737 3344.09944 4218.18029 3344.22066 4218.41946 3344.30435 4218.55941 3344.38868 4218.65397 3344.52194 4218.68734 3344.6819 4218.65397 3344.84186 4218.55941 3344.97512 4218.41946 3345.05945 4218.18029 3345.14314 4217.98737 3345.26436 4217.82626 3345.42547 4217.70504 3345.61839 4217.62979 3345.83344 4217.60175 3346.10512 4219.60208 3346.10512 4219.60208 3344.72395 4219.63252 3344.57088 4219.71923 3344.44111 4219.849 3344.3544 4220.00208 3344.32395 4222.16273 3344.32395 4222.3158 3344.3544 4222.44557 3344.44111 4222.53228 3344.57088 4222.56272 3344.72395 Z M 4261.1409 3242.35191 L 4261.71273 3242.31593 4262.27555 3242.20857 4262.82047 3242.03151 4263.33891 3241.78756 4263.82268 3241.48055 4264.26415 3241.11533 4264.65637 3240.69765 4264.99315 3240.23411 4265.26918 3239.73202 4265.4801 3239.19929 4265.62259 3238.64433 4265.69441 3238.07588 4265.69441 3237.50292 4265.62259 3236.93447 4265.4801 3236.37951 4265.43191 3236.17722 4265.46314 3236.02641 4265.54904 3235.89857 4265.67688 3235.81267 4265.82769 3235.78143 4266.02991 3235.8296 4266.58487 3235.97209 4267.15332 3236.04391 4267.72628 3236.04391 4268.29473 3235.97209 4268.84969 3235.8296 4269.38242 3235.61868 4269.88451 3235.34265 4270.34805 3235.00587 4270.76573 3234.61365 4271.13095 3234.17218 4271.43796 3233.68841 4271.68191 3233.16997 4271.85897 3232.62505 4271.96633 3232.06223 4272.00231 3231.4904 4271.96633 3230.91857 4271.85897 3230.35575 4271.68191 3229.81083 4271.43796 3229.29239 4271.13095 3228.80862 4270.76573 3228.36715 4270.34805 3227.97493 4269.88451 3227.63815 4269.38242 3227.36212 4268.84969 3227.1512 4268.29473 3227.00871 4267.72628 3226.93689 4267.15332 3226.93689 4266.58487 3227.00871 4266.02991 3227.1512 4265.49718 3227.36212 4264.99509 3227.63815 4264.53155 3227.97493 4264.11387 3228.36715 4263.74865 3228.80862 4263.44164 3229.29239 4263.19769 3229.81083 4263.02063 3230.35575 4262.91327 3230.91857 4262.87729 3231.4904 4262.91327 3232.06223 4263.02063 3232.62505 4263.13669 3232.98223 4263.15311 3233.15597 4263.09399 3233.32017 4262.97059 3233.44357 4262.8064 3233.50268 4262.63266 3233.48626 4262.27555 3233.37023 4261.71273 3233.26287 4261.1409 3233.22689 4260.56907 3233.26287 4260.00625 3233.37023 4259.46133 3233.54729 4258.94289 3233.79124 4258.45912 3234.09825 4258.01765 3234.46347 4257.62543 3234.88115 4257.28865 3235.34469 4257.01262 3235.84678 4256.8017 3236.37951 4256.65921 3236.93447 4256.58739 3237.50292 4256.58739 3238.07588 4256.65921 3238.64433 4256.8017 3239.19929 4257.01262 3239.73202 4257.28865 3240.23411 4257.62543 3240.69765 4258.01765 3241.11533 4258.45912 3241.48055 4258.94289 3241.78756 4259.46133 3242.03151 4260.00625 3242.20857 4260.56907 3242.31593 4261.1409 3242.35191 Z M 4266.58487 3218.25559 L 4267.15332 3218.32741 4267.72628 3218.32741 4268.29473 3218.25559 4268.84969 3218.1131 4269.38242 3217.90218 4269.88451 3217.62615 4270.34805 3217.28937 4270.76573 3216.89715 4271.13095 3216.45568 4271.43796 3215.97191 4271.68191 3215.45347 4271.85897 3214.90855 4271.96633 3214.34573 4272.00231 3213.7739 4271.96633 3213.20207 4271.85897 3212.63925 4271.68191 3212.09433 4271.43796 3211.57589 4271.13095 3211.09212 4270.76573 3210.65065 4270.34805 3210.25843 4269.88451 3209.92165 4269.38242 3209.64562 4268.84969 3209.4347 4268.29473 3209.29221 4267.72628 3209.22039 4267.15332 3209.22039 4266.58487 3209.29221 4266.02991 3209.4347 4265.82781 3209.48282 4265.67699 3209.45159 4265.54915 3209.36569 4265.46325 3209.23785 4265.43202 3209.08703 4265.4796 3208.88629 4265.62209 3208.33133 4265.69391 3207.76288 4265.69391 3207.18992 4265.62209 3206.62147 4265.4796 3206.06651 4265.26868 3205.53378 4264.99265 3205.03169 4264.65587 3204.56815 4264.26365 3204.15047 4263.82218 3203.78525 4263.33841 3203.47824 4262.81997 3203.23429 4262.27505 3203.05723 4261.71223 3202.94987 4261.1404 3202.91389 4260.56857 3202.94987 4260.00575 3203.05723 4259.46083 3203.23429 4258.94239 3203.47824 4258.45862 3203.78525 4258.01715 3204.15047 4257.62493 3204.56815 4257.28815 3205.03169 4257.01212 3205.53378 4256.8012 3206.06651 4256.65871 3206.62147 4256.58689 3207.18992 4256.58689 3207.76288 4256.65871 3208.33133 4256.8012 3208.88629 4257.01212 3209.41902 4257.28815 3209.92111 4257.62493 3210.38465 4258.01715 3210.80233 4258.45862 3211.16755 4258.94239 3211.47456 4259.46083 3211.71851 4260.00575 3211.89557 4260.56857 3212.00293 4261.1404 3212.03891 4261.71223 3212.00293 4262.27505 3211.89557 4262.63217 3211.77953 4262.80591 3211.76311 4262.97011 3211.82223 4263.09351 3211.94563 4263.15262 3212.10982 4263.1362 3212.28356 4263.02063 3212.63925 4262.91327 3213.20207 4262.87729 3213.7739 4262.91327 3214.34573 4263.02063 3214.90855 4263.19769 3215.45347 4263.44164 3215.97191 4263.74865 3216.45568 4264.11387 3216.89715 4264.53155 3217.28937 4264.99509 3217.62615 4265.49718 3217.90218 4266.02991 3218.1131 4266.58487 3218.25559 Z M 4242.85257 3242.31593 L 4243.4244 3242.35191 4243.99623 3242.31593 4244.55905 3242.20857 4245.10397 3242.03151 4245.62241 3241.78756 4246.10618 3241.48055 4246.54765 3241.11533 4246.93987 3240.69765 4247.27665 3240.23411 4247.55268 3239.73202 4247.7636 3239.19929 4247.90609 3238.64433 4247.97791 3238.07588 4247.97791 3237.50292 4247.90609 3236.93447 4247.7636 3236.37951 4247.55268 3235.84678 4247.27665 3235.34469 4246.93987 3234.88115 4246.54765 3234.46347 4246.10618 3234.09825 4245.62241 3233.79124 4245.10397 3233.54729 4244.55905 3233.37023 4243.99623 3233.26287 4243.4244 3233.22689 4242.85257 3233.26287 4242.28975 3233.37023 4241.93428 3233.48573 4241.76054 3233.50215 4241.59634 3233.44304 4241.47294 3233.31964 4241.41383 3233.15544 4241.43025 3232.9817 4241.54597 3232.62555 4241.65333 3232.06273 4241.68931 3231.4909 4241.65333 3230.91907 4241.54597 3230.35625 4241.36891 3229.81133 4241.12496 3229.29289 4240.81795 3228.80912 4240.45273 3228.36765 4240.03505 3227.97543 4239.57151 3227.63865 4239.06942 3227.36262 4238.53669 3227.1517 4237.98173 3227.00921 4237.41328 3226.93739 4236.84032 3226.93739 4236.27187 3227.00921 4235.71691 3227.1517 4235.18418 3227.36262 4234.68209 3227.63865 4234.21855 3227.97543 4233.80087 3228.36765 4233.43565 3228.80912 4233.12864 3229.29289 4232.88469 3229.81133 4232.70763 3230.35625 4232.60027 3230.91907 4232.56429 3231.4909 4232.60027 3232.06273 4232.70763 3232.62555 4232.88469 3233.17047 4233.12864 3233.68891 4233.43565 3234.17268 4233.80087 3234.61415 4234.21855 3235.00637 4234.68209 3235.34315 4235.18418 3235.61918 4235.71691 3235.8301 4236.27187 3235.97259 4236.84032 3236.04441 4237.41328 3236.04441 4237.98173 3235.97259 4238.53669 3235.8301 4238.73713 3235.78264 4238.88795 3235.81387 4239.01578 3235.89977 4239.10169 3236.02761 4239.13292 3236.17843 4239.0852 3236.37951 4238.94271 3236.93447 4238.87089 3237.50292 4238.87089 3238.07588 4238.94271 3238.64433 4239.0852 3239.19929 4239.29612 3239.73202 4239.57215 3240.23411 4239.90893 3240.69765 4240.30115 3241.11533 4240.74262 3241.48055 4241.22639 3241.78756 4241.74483 3242.03151 4242.28975 3242.20857 4242.85257 3242.31593 Z M 4236.27187 3218.25609 L 4236.84032 3218.32791 4237.41328 3218.32791 4237.98173 3218.25609 4238.53669 3218.1136 4239.06942 3217.90268 4239.57151 3217.62665 4240.03505 3217.28987 4240.45273 3216.89765 4240.81795 3216.45618 4241.12496 3215.97241 4241.36891 3215.45397 4241.54597 3214.90905 4241.65333 3214.34623 4241.68931 3213.7744 4241.65333 3213.20257 4241.54597 3212.63975 4241.43049 3212.28434 4241.41407 3212.1106 4241.47318 3211.9464 4241.59658 3211.823 4241.76078 3211.76389 4241.93452 3211.78031 4242.28925 3211.89557 4242.85207 3212.00293 4243.4239 3212.03891 4243.99573 3212.00293 4244.55855 3211.89557 4245.10347 3211.71851 4245.62191 3211.47456 4246.10568 3211.16755 4246.54715 3210.80233 4246.93937 3210.38465 4247.27615 3209.92111 4247.55218 3209.41902 4247.7631 3208.88629 4247.90559 3208.33133 4247.97741 3207.76288 4247.97741 3207.18992 4247.90559 3206.62147 4247.7631 3206.06651 4247.55218 3205.53378 4247.27615 3205.03169 4246.93937 3204.56815 4246.54715 3204.15047 4246.10568 3203.78525 4245.62191 3203.47824 4245.10347 3203.23429 4244.55855 3203.05723 4243.99573 3202.94987 4243.4239 3202.91389 4242.85207 3202.94987 4242.28925 3203.05723 4241.74433 3203.23429 4241.22589 3203.47824 4240.74212 3203.78525 4240.30065 3204.15047 4239.90843 3204.56815 4239.57165 3205.03169 4239.29562 3205.53378 4239.0847 3206.06651 4238.94221 3206.62147 4238.87039 3207.18992 4238.87039 3207.76288 4238.94221 3208.33133 4239.0847 3208.88629 4239.13209 3209.08655 4239.10086 3209.23736 4239.01496 3209.3652 4238.88712 3209.4511 4238.7363 3209.48234 4238.53669 3209.4352 4237.98173 3209.29271 4237.41328 3209.22089 4236.84032 3209.22089 4236.27187 3209.29271 4235.71691 3209.4352 4235.18418 3209.64612 4234.68209 3209.92215 4234.21855 3210.25893 4233.80087 3210.65115 4233.43565 3211.09262 4233.12864 3211.57639 4232.88469 3212.09483 4232.70763 3212.63975 4232.60027 3213.20257 4232.56429 3213.7744 4232.60027 3214.34623 4232.70763 3214.90905 4232.88469 3215.45397 4233.12864 3215.97241 4233.43565 3216.45618 4233.80087 3216.89765 4234.21855 3217.28987 4234.68209 3217.62665 4235.18418 3217.90268 4235.71691 3218.1136 4236.27187 3218.25609 Z M 4303.464 3371.68477 L 4304.1071 3371.64865 4304.74211 3371.54076 4305.36105 3371.36245 4305.95613 3371.11596 4306.51987 3370.80439 4307.04518 3370.43166 4307.52546 3370.00246 4307.95466 3369.52218 4308.32739 3368.99687 4308.63896 3368.43313 4308.88545 3367.83805 4309.06376 3367.21911 4309.17165 3366.5841 4309.20777 3365.941 4309.17165 3365.2979 4309.06376 3364.66289 4308.88545 3364.04395 4308.63896 3363.44887 4308.32739 3362.88513 4307.95466 3362.35982 4307.52546 3361.87954 4307.04518 3361.45034 4306.51987 3361.07761 4305.95613 3360.76604 4305.36105 3360.51955 4304.74211 3360.34124 4304.1071 3360.23335 4303.464 3360.19723 4302.8209 3360.23335 4302.18589 3360.34124 4301.56695 3360.51955 4300.97187 3360.76604 4300.40813 3361.07761 4299.88282 3361.45034 4299.40254 3361.87954 4298.97334 3362.35982 4298.60061 3362.88513 4298.28904 3363.44887 4298.04255 3364.04395 4297.86424 3364.66289 4297.75635 3365.2979 4297.72023 3365.941 4297.75635 3366.5841 4297.86424 3367.21911 4298.04255 3367.83805 4298.28904 3368.43313 4298.60061 3368.99687 4298.97334 3369.52218 4299.40254 3370.00246 4299.88282 3370.43166 4300.40813 3370.80439 4300.97187 3371.11596 4301.56695 3371.36245 4302.18589 3371.54076 4302.8209 3371.64865 4303.464 3371.68477 Z M 4208.976 3387.43277 L 4209.6191 3387.39665 4210.25411 3387.28876 4210.87305 3387.11045 4211.46813 3386.86396 4212.03187 3386.55239 4212.55718 3386.17966 4213.03746 3385.75046 4213.46666 3385.27018 4213.83939 3384.74487 4214.15096 3384.18113 4214.39745 3383.58605 4214.57576 3382.96711 4214.68365 3382.3321 4214.71977 3381.689 4214.68365 3381.0459 4214.57576 3380.41089 4214.39745 3379.79195 4214.15096 3379.19687 4213.83939 3378.63313 4213.46666 3378.10782 4213.03746 3377.62754 4212.55718 3377.19834 4212.03187 3376.82561 4211.46813 3376.51404 4210.87305 3376.26755 4210.25411 3376.08924 4209.6191 3375.98135 4208.976 3375.94523 4208.3329 3375.98135 4207.69789 3376.08924 4207.07895 3376.26755 4206.48387 3376.51404 4205.92013 3376.82561 4205.39482 3377.19834 4204.91454 3377.62754 4204.48534 3378.10782 4204.11261 3378.63313 4203.80104 3379.19687 4203.55455 3379.79195 4203.37624 3380.41089 4203.26835 3381.0459 4203.23223 3381.689 4203.26835 3382.3321 4203.37624 3382.96711 4203.55455 3383.58605 4203.80104 3384.18113 4204.11261 3384.74487 4204.48534 3385.27018 4204.91454 3385.75046 4205.39482 3386.17966 4205.92013 3386.55239 4206.48387 3386.86396 4207.07895 3387.11045 4207.69789 3387.28876 4208.3329 3387.39665 4208.976 3387.43277 Z M 4208.976 3143.33877 L 4209.6191 3143.30265 4210.25411 3143.19476 4210.87305 3143.01645 4211.46813 3142.76996 4212.03187 3142.45839 4212.55718 3142.08566 4213.03746 3141.65646 4213.46666 3141.17618 4213.83939 3140.65087 4214.15096 3140.08713 4214.39745 3139.49205 4214.57576 3138.87311 4214.68365 3138.2381 4214.71977 3137.595 4214.68365 3136.9519 4214.57576 3136.31689 4214.39745 3135.69795 4214.15096 3135.10287 4213.83939 3134.53913 4213.46666 3134.01382 4213.03746 3133.53354 4212.55718 3133.10434 4212.03187 3132.73161 4211.46813 3132.42004 4210.87305 3132.17355 4210.25411 3131.99524 4209.6191 3131.88735 4208.976 3131.85123 4208.3329 3131.88735 4207.69789 3131.99524 4207.07895 3132.17355 4206.48387 3132.42004 4205.92013 3132.73161 4205.39482 3133.10434 4204.91454 3133.53354 4204.48534 3134.01382 4204.11261 3134.53913 4203.80104 3135.10287 4203.55455 3135.69795 4203.37624 3136.31689 4203.26835 3136.9519 4203.23223 3137.595 4203.26835 3138.2381 4203.37624 3138.87311 4203.55455 3139.49205 4203.80104 3140.08713 4204.11261 3140.65087 4204.48534 3141.17618 4204.91454 3141.65646 4205.39482 3142.08566 4205.92013 3142.45839 4206.48387 3142.76996 4207.07895 3143.01645 4207.69789 3143.19476 4208.3329 3143.30265 4208.976 3143.33877 Z M 4303.464 3159.08677 L 4304.1071 3159.05065 4304.74211 3158.94276 4305.36105 3158.76445 4305.95613 3158.51796 4306.51987 3158.20639 4307.04518 3157.83366 4307.52546 3157.40446 4307.95466 3156.92418 4308.32739 3156.39887 4308.63896 3155.83513 4308.88545 3155.24005 4309.06376 3154.62111 4309.17165 3153.9861 4309.20777 3153.343 4309.17165 3152.6999 4309.06376 3152.06489 4308.88545 3151.44595 4308.63896 3150.85087 4308.32739 3150.28713 4307.95466 3149.76182 4307.52546 3149.28154 4307.04518 3148.85234 4306.51987 3148.47961 4305.95613 3148.16804 4305.36105 3147.92155 4304.74211 3147.74324 4304.1071 3147.63535 4303.464 3147.59923 4302.8209 3147.63535 4302.18589 3147.74324 4301.56695 3147.92155 4300.97187 3148.16804 4300.40813 3148.47961 4299.88282 3148.85234 4299.40254 3149.28154 4298.97334 3149.76182 4298.60061 3150.28713 4298.28904 3150.85087 4298.04255 3151.44595 4297.86424 3152.06489 4297.75635 3152.6999 4297.72023 3153.343 4297.75635 3153.9861 4297.86424 3154.62111 4298.04255 3155.24005 4298.28904 3155.83513 4298.60061 3156.39887 4298.97334 3156.92418 4299.40254 3157.40446 4299.88282 3157.83366 4300.40813 3158.20639 4300.97187 3158.51796 4301.56695 3158.76445 4302.18589 3158.94276 4302.8209 3159.05065 4303.464 3159.08677 Z M 4266.06 3167.15727 L 4266.65741 3167.12113 4267.24611 3167.01325 4267.81752 3166.83519 4268.36329 3166.58956 4268.87548 3166.27993 4269.34661 3165.91082 4269.76982 3165.48761 4270.13893 3165.01648 4270.44856 3164.50429 4270.69419 3163.95852 4270.87225 3163.38711 4270.98013 3162.79841 4271.01627 3162.201 4270.98013 3161.60359 4270.87225 3161.01489 4270.69419 3160.44348 4270.44856 3159.89771 4270.13893 3159.38552 4269.76982 3158.91439 4269.34661 3158.49118 4268.87548 3158.12207 4268.36329 3157.81244 4267.81752 3157.56681 4267.24611 3157.38875 4266.65741 3157.28087 4266.06 3157.24473 4265.46259 3157.28087 4264.87389 3157.38875 4264.30248 3157.56681 4263.75671 3157.81244 4263.24452 3158.12207 4262.77339 3158.49118 4262.35018 3158.91439 4261.98107 3159.38552 4261.67144 3159.89771 4261.42581 3160.44348 4261.24775 3161.01489 4261.13987 3161.60359 4261.10373 3162.201 4261.13987 3162.79841 4261.24775 3163.38711 4261.42581 3163.95852 4261.67144 3164.50429 4261.98107 3165.01648 4262.35018 3165.48761 4262.77339 3165.91082 4263.24452 3166.27993 4263.75671 3166.58956 4264.30248 3166.83519 4264.87389 3167.01325 4265.46259 3167.12113 4266.06 3167.15727 Z M 4238.501 3167.15727 L 4239.09841 3167.12113 4239.68711 3167.01325 4240.25852 3166.83519 4240.80429 3166.58956 4241.31648 3166.27993 4241.78761 3165.91082 4242.21082 3165.48761 4242.57993 3165.01648 4242.88956 3164.50429 4243.13519 3163.95852 4243.31325 3163.38711 4243.42113 3162.79841 4243.45727 3162.201 4243.42113 3161.60359 4243.31325 3161.01489 4243.13519 3160.44348 4242.88956 3159.89771 4242.57993 3159.38552 4242.21082 3158.91439 4241.78761 3158.49118 4241.31648 3158.12207 4240.80429 3157.81244 4240.25852 3157.56681 4239.68711 3157.38875 4239.09841 3157.28087 4238.501 3157.24473 4237.90359 3157.28087 4237.31489 3157.38875 4236.74348 3157.56681 4236.19771 3157.81244 4235.68552 3158.12207 4235.21439 3158.49118 4234.79118 3158.91439 4234.42207 3159.38552 4234.11244 3159.89771 4233.86681 3160.44348 4233.68875 3161.01489 4233.58087 3161.60359 4233.54473 3162.201 4233.58087 3162.79841 4233.68875 3163.38711 4233.86681 3163.95852 4234.11244 3164.50429 4234.42207 3165.01648 4234.79118 3165.48761 4235.21439 3165.91082 4235.68552 3166.27993 4236.19771 3166.58956 4236.74348 3166.83519 4237.31489 3167.01325 4237.90359 3167.12113 4238.501 3167.15727 Z M 4206.48609 3314.17746 L 4206.73496 3314.2055 4215.35144 3314.2055 4215.60031 3314.17746 4215.81536 3314.10221 4216.00828 3313.98099 4216.16939 3313.81988 4216.29061 3313.62696 4216.36586 3313.41191 4216.3939 3313.16304 4216.3939 3306.12136 4216.36586 3305.87249 4216.29061 3305.65744 4216.16939 3305.46452 4216.00828 3305.30341 4215.81536 3305.18219 4215.60031 3305.10694 4215.35144 3305.0789 4206.73496 3305.0789 4206.48609 3305.10694 4206.27104 3305.18219 4206.07812 3305.30341 4205.91701 3305.46452 4205.79579 3305.65744 4205.72054 3305.87249 4205.6925 3306.12136 4205.6925 3313.16304 4205.72054 3313.41191 4205.79579 3313.62696 4205.91701 3313.81988 4206.07812 3313.98099 4206.27104 3314.10221 4206.48609 3314.17746 Z M 4206.48609 3360.63346 L 4206.73496 3360.6615 4215.35144 3360.6615 4215.60031 3360.63346 4215.81536 3360.55821 4216.00828 3360.43699 4216.16939 3360.27588 4216.29061 3360.08296 4216.36586 3359.86791 4216.3939 3359.61904 4216.3939 3352.57736 4216.36586 3352.32849 4216.29061 3352.11344 4216.16939 3351.92052 4216.00828 3351.75941 4215.81536 3351.63819 4215.60031 3351.56294 4215.35144 3351.5349 4206.73496 3351.5349 4206.48609 3351.56294 4206.27104 3351.63819 4206.07812 3351.75941 4205.91701 3351.92052 4205.79579 3352.11344 4205.72054 3352.32849 4205.6925 3352.57736 4205.6925 3359.61904 4205.72054 3359.86791 4205.79579 3360.08296 4205.91701 3360.27588 4206.07812 3360.43699 4206.27104 3360.55821 4206.48609 3360.63346 Z M 4241.40275 3274.54774 L 4241.40275 3272.48825 4239.33956 3272.48825 4239.57215 3272.91131 4239.90893 3273.37485 4240.30115 3273.79253 4240.74262 3274.15775 4241.22639 3274.46476 4241.40275 3274.54774 Z M 4241.40275 3268.44495 L 4241.40275 3266.38546 4241.22639 3266.46844 4240.74262 3266.77545 4240.30115 3267.14067 4239.90893 3267.55835 4239.57215 3268.02189 4239.33956 3268.44495 4241.40275 3268.44495 Z M 4202.42795 3217.85924 L 4202.42795 3215.79605 4200.36846 3215.79605 4200.45144 3215.97241 4200.75845 3216.45618 4201.12367 3216.89765 4201.54135 3217.28987 4202.00489 3217.62665 4202.42795 3217.85924 Z M 4304.19814 3229.46875 L 4304.11516 3229.29239 4303.80815 3228.80862 4303.44293 3228.36715 4303.02525 3227.97493 4302.56171 3227.63815 4302.13865 3227.40556 4302.13865 3229.46875 4304.19814 3229.46875 Z M 4202.42795 3211.75275 L 4202.42795 3209.68956 4202.00489 3209.92215 4201.54135 3210.25893 4201.12367 3210.65115 4200.75845 3211.09262 4200.45144 3211.57639 4200.36846 3211.75275 4202.42795 3211.75275 Z M 4302.13865 3235.57524 L 4302.56171 3235.34265 4303.02525 3235.00587 4303.44293 3234.61365 4303.80815 3234.17218 4304.11516 3233.68841 4304.19814 3233.51205 4302.13865 3233.51205 4302.13865 3235.57524 Z M 4206.47125 3217.85924 L 4206.89431 3217.62665 4207.35785 3217.28987 4207.77553 3216.89765 4208.14075 3216.45618 4208.44776 3215.97241 4208.53074 3215.79605 4206.47125 3215.79605 4206.47125 3217.85924 Z M 4206.47125 3209.68956 L 4206.47125 3211.75275 4208.53074 3211.75275 4208.44776 3211.57639 4208.14075 3211.09262 4207.77553 3210.65115 4207.35785 3210.25893 4206.89431 3209.92215 4206.47125 3209.68956 Z M 4298.09535 3235.57524 L 4298.09535 3233.51205 4296.03586 3233.51205 4296.11884 3233.68841 4296.42585 3234.17218 4296.79107 3234.61365 4297.20875 3235.00587 4297.67229 3235.34265 4298.09535 3235.57524 Z M 4298.09535 3229.46875 L 4298.09535 3227.40556 4297.67229 3227.63815 4297.20875 3227.97493 4296.79107 3228.36715 4296.42585 3228.80862 4296.11884 3229.29239 4296.03586 3229.46875 4298.09535 3229.46875 Z M 4263.16205 3178.88034 L 4263.33841 3178.79736 4263.82218 3178.49035 4264.26365 3178.12513 4264.65587 3177.70745 4264.99265 3177.24391 4265.22524 3176.82085 4263.16205 3176.82085 4263.16205 3178.88034 Z M 4259.11875 3178.88034 L 4259.11875 3176.82085 4257.05556 3176.82085 4257.28815 3177.24391 4257.62493 3177.70745 4258.01715 3178.12513 4258.45862 3178.49035 4258.94239 3178.79736 4259.11875 3178.88034 Z M 4263.16205 3170.71806 L 4263.16205 3172.77755 4265.22524 3172.77755 4264.99265 3172.35449 4264.65587 3171.89095 4264.26365 3171.47327 4263.82218 3171.10805 4263.33841 3170.80104 4263.16205 3170.71806 Z M 4257.28815 3172.35449 L 4257.05556 3172.77755 4259.11875 3172.77755 4259.11875 3170.71806 4258.94239 3170.80104 4258.45862 3171.10805 4258.01715 3171.47327 4257.62493 3171.89095 4257.28815 3172.35449 Z M 4247.50924 3268.44495 L 4247.27665 3268.02189 4246.93987 3267.55835 4246.54765 3267.14067 4246.10618 3266.77545 4245.62241 3266.46844 4245.44605 3266.38546 4245.44605 3268.44495 4247.50924 3268.44495 Z M 4245.44605 3272.48825 L 4245.44605 3274.54774 4245.62241 3274.46476 4246.10618 3274.15775 4246.54765 3273.79253 4246.93987 3273.37485 4247.27665 3272.91131 4247.50924 3272.48825 4245.44605 3272.48825 Z M 4245.2478 3154.1838 L 4245.2478 3156.09724 4245.50737 3155.96924 4245.96077 3155.66629 4246.37075 3155.30675 4246.73029 3154.89677 4247.03324 3154.44337 4247.16124 3154.1838 4245.2478 3154.1838 Z M 4245.2478 3148.62076 L 4245.2478 3150.5342 4247.16124 3150.5342 4247.03324 3150.27463 4246.73029 3149.82123 4246.37075 3149.41125 4245.96077 3149.05171 4245.50737 3148.74876 4245.2478 3148.62076 Z M 4239.81276 3150.27463 L 4239.68476 3150.5342 4241.5982 3150.5342 4241.5982 3148.62076 4241.33863 3148.74876 4240.88523 3149.05171 4240.47525 3149.41125 4240.11571 3149.82123 4239.81276 3150.27463 Z M 4241.5982 3156.09724 L 4241.5982 3154.1838 4239.68476 3154.1838 4239.81276 3154.44337 4240.11571 3154.89677 4240.47525 3155.30675 4240.88523 3155.66629 4241.33863 3155.96924 4241.5982 3156.09724 Z M 4271.93844 3278.35006 L 4272.18731 3278.3781 4272.80068 3278.3781 4272.80068 3276.8207 4271.14485 3276.8207 4271.14485 3277.33564 4271.17289 3277.58451 4271.24814 3277.79956 4271.36936 3277.99248 4271.53047 3278.15359 4271.72339 3278.27481 4271.93844 3278.35006 Z M 4275.07232 3276.8207 L 4275.07232 3278.3781 4275.68569 3278.3781 4275.93456 3278.35006 4276.14961 3278.27481 4276.34253 3278.15359 4276.50364 3277.99248 4276.62486 3277.79956 4276.70011 3277.58451 4276.72815 3277.33564 4276.72815 3276.8207 4275.07232 3276.8207 Z M 4293.3719 3204.55975 L 4293.3719 3202.90393 4291.8145 3202.90393 4291.8145 3203.51729 4291.84254 3203.76616 4291.91779 3203.98121 4292.03901 3204.17413 4292.20012 3204.33524 4292.39304 3204.45646 4292.60809 3204.53171 4292.85696 3204.55975 4293.3719 3204.55975 Z M 4293.3719 3200.63227 L 4293.3719 3198.97645 4292.85696 3198.97645 4292.60809 3199.00449 4292.39304 3199.07974 4292.20012 3199.20096 4292.03901 3199.36207 4291.91779 3199.55499 4291.84254 3199.77004 4291.8145 3200.01891 4291.8145 3200.63227 4293.3719 3200.63227 Z M 4235.1217 3308.28641 L 4235.1217 3308.89977 4236.6791 3308.89977 4236.6791 3307.24395 4236.16416 3307.24395 4235.91529 3307.27199 4235.70024 3307.34724 4235.50732 3307.46846 4235.34621 3307.62957 4235.22499 3307.82249 4235.14974 3308.03754 4235.1217 3308.28641 Z M 4210.8004 3243.84873 L 4210.8004 3245.50455 4211.31534 3245.50455 4211.56421 3245.47651 4211.77926 3245.40126 4211.97218 3245.28004 4212.13329 3245.11893 4212.25451 3244.92601 4212.32976 3244.71096 4212.3578 3244.46209 4212.3578 3243.84873 4210.8004 3243.84873 Z M 4236.6791 3312.82725 L 4236.6791 3311.17142 4235.1217 3311.17142 4235.1217 3311.78479 4235.14974 3312.03366 4235.22499 3312.24871 4235.34621 3312.44163 4235.50732 3312.60274 4235.70024 3312.72396 4235.91529 3312.79921 4236.16416 3312.82725 4236.6791 3312.82725 Z M 4212.3578 3241.57707 L 4212.3578 3240.96371 4212.32976 3240.71484 4212.25451 3240.49979 4212.13329 3240.30687 4211.97218 3240.14576 4211.77926 3240.02454 4211.56421 3239.94929 4211.31534 3239.92125 4210.8004 3239.92125 4210.8004 3241.57707 4212.3578 3241.57707 Z M 4229.81254 3183.07466 L 4230.06141 3183.1027 4230.67478 3183.1027 4230.67478 3181.5453 4229.01895 3181.5453 4229.01895 3182.06024 4229.04699 3182.30911 4229.12224 3182.52416 4229.24346 3182.71708 4229.40457 3182.87819 4229.59749 3182.99941 4229.81254 3183.07466 Z M 4232.94643 3181.5453 L 4232.94643 3183.1027 4233.55979 3183.1027 4233.80866 3183.07466 4234.02371 3182.99941 4234.21663 3182.87819 4234.37774 3182.71708 4234.49896 3182.52416 4234.57421 3182.30911 4234.60225 3182.06024 4234.60225 3181.5453 4232.94643 3181.5453 Z M 4270.83217 3145.6131 L 4270.83217 3144.0557 4270.21881 3144.0557 4269.96994 3144.08374 4269.75489 3144.15899 4269.56197 3144.28021 4269.40086 3144.44132 4269.27964 3144.63424 4269.20439 3144.84929 4269.17635 3145.09816 4269.17635 3145.6131 4270.83217 3145.6131 Z M 4273.10383 3144.0557 L 4273.10383 3145.6131 4274.75965 3145.6131 4274.75965 3145.09816 4274.73161 3144.84929 4274.65636 3144.63424 4274.53514 3144.44132 4274.37403 3144.28021 4274.18111 3144.15899 4273.96606 3144.08374 4273.71719 3144.0557 4273.10383 3144.0557 Z M 4222.56272 3347.19567 L 4222.56272 3348.26095 4223.52059 3348.26095 4223.76946 3348.23291 4223.98451 3348.15766 4224.17743 3348.03644 4224.33854 3347.87533 4224.45976 3347.68241 4224.53501 3347.46736 4224.56305 3347.19567 4222.56272 3347.19567 Z M 4219.60208 3348.26095 L 4219.60208 3347.19567 4217.60175 3347.19567 4217.62979 3347.46736 4217.70504 3347.68241 4217.82626 3347.87533 4217.98737 3348.03644 4218.18029 3348.15766 4218.39534 3348.23291 4218.64421 3348.26095 4219.60208 3348.26095 Z "}]},"pads":[],"nets":["MENU","Y","X","RB","A","B","GND","3V3"],"bom":{"both":[[1,"AFA01-S08FCA-00","FPC-SMD_8P-P1.00_FGS-XJ-H2.0",[["FPC1",0]],["JS(钜硕电子)","AFA01-S08FCA-00","LCSC","C262755"]],[6,"10nF","C0603",[["C1",1],["C2",2],["C3",3],["C4",4],["C5",5],["C6",6]],["FH(风华)","0603B103K500NT","LCSC","C57112"]],[6,"10kΩ","R0603",[["R1",7],["R2",8],["R3",9],["R4",10],["R5",11],["R6",18]],["UNI-ROYAL(厚声)","0603WAF1002T5E","LCSC","C25804"]],[1,"UK-B0228-G10-160","KEY-SMD_4P-L6.0-W6.0-P4.50-LS10.0",[["SW1",12]],["USAKRO(美韩)","UK-B0228-G10-160","LCSC","C620322"]],[1,"TS-1093A-A5B3-D2","KEY-TH_4P-L7.1-W8.9-P4.50-LS2.5",[["SW2",13]],["Yuandi(元迪)","TS-1093A-A5B3-D2","LCSC","C499312"]],[4,"TC-1117-B","SW-TH_4P-L7.8-W7.8-P4.50-LS8.5",[["SW3",14],["SW4",15],["SW5",16],["SW6",17]],["XKB Connectivity(中国星坤)","TC-1117-B","LCSC","C692475"]]],"F":[[1,"UK-B0228-G10-160","KEY-SMD_4P-L6.0-W6.0-P4.50-LS10.0",[["SW1",12]],["USAKRO(美韩)","UK-B0228-G10-160","LCSC","C620322"]],[1,"TS-1093A-A5B3-D2","KEY-TH_4P-L7.1-W8.9-P4.50-LS2.5",[["SW2",13]],["Yuandi(元迪)","TS-1093A-A5B3-D2","LCSC","C499312"]],[4,"TC-1117-B","SW-TH_4P-L7.8-W7.8-P4.50-LS8.5",[["SW3",14],["SW4",15],["SW5",16],["SW6",17]],["XKB Connectivity(中国星坤)","TC-1117-B","LCSC","C692475"]]],"B":[[1,"AFA01-S08FCA-00","FPC-SMD_8P-P1.00_FGS-XJ-H2.0",[["FPC1",0]],["JS(钜硕电子)","AFA01-S08FCA-00","LCSC","C262755"]],[6,"10nF","C0603",[["C1",1],["C2",2],["C3",3],["C4",4],["C5",5],["C6",6]],["FH(风华)","0603B103K500NT","LCSC","C57112"]],[6,"10kΩ","R0603",[["R1",7],["R2",8],["R3",9],["R4",10],["R5",11],["R6",18]],["UNI-ROYAL(厚声)","0603WAF1002T5E","LCSC","C25804"]]],"skipped":[],"customColumns":["BOM_Manufacturer","BOM_Manufacturer Part","BOM_Supplier","BOM_Supplier Part"]}};
///////////////////////////////////////////////

///////////////////////////////////////////////
/* Utility functions */

var storagePrefix = 'ibom__' + pcbdata.metadata.title + '__' +
  pcbdata.metadata.revision + '__#';

function buildKeyForLocalStorageDict() {  
  return storagePrefix;
}

var storage;
var _isLocalStorageUsed = false;

function initStorage(key) {
  try {
    window.localStorage.getItem("blank");
    storage = window.localStorage;    
    _isLocalStorageUsed = true;
  } catch (e) {
    // localStorage not available
  }
  if (!storage) {
    try {
      window.sessionStorage.getItem("blank");
      storage = window.sessionStorage;      
    } catch (e) {
      // sessionStorage also not available
    }
  }
}



function readStorage(key) {
  if(!storage) {
    return null;
  }

  if(!_isLocalStorageUsed) {    
    return storage.getItem(storagePrefix + key);
  }

  try {
    var dictKey = buildKeyForLocalStorageDict();
    var obj = JSON.parse(storage.getItem(dictKey));    
    if(!obj || !obj.hasOwnProperty(key)) {
      return null;
    }

    return JSON.parse(storage.getItem(dictKey))[key];
  } catch(e) {
    console.log('[ibom]: Unable to obtain a value from local storage!');
    console.log(e);
  }
  
  // Original implementation
  // return storage.getItem(storagePrefix + key);
}


function writeStorage(key, value) {
  if(!storage) {
    return;
  }

  if(!_isLocalStorageUsed) {
    storage.setItem(storagePrefix + key, value);
    return;
  }

  try {
    var dictKey = buildKeyForLocalStorageDict();
    if(!storage.getItem(dictKey)) {
      storage.setItem(dictKey,JSON.stringify({
        _storagePrefix: storagePrefix
      }));
    }

    var obj = JSON.parse(storage.getItem(dictKey));
    obj[key] = value;
    storage.setItem(dictKey,JSON.stringify(obj));            
  } catch(e) {
    console.log('[ibom]: Unable to write key to local storage!');
    console.log(e);
  }
  
  // Original implementation
  // storage.setItem(storagePrefix + key, value);
}

function fancyDblClickHandler(el, onsingle, ondouble) {
  return function() {
    if (el.getAttribute("data-dblclick") == null) {
      el.setAttribute("data-dblclick", 1);
      setTimeout(function() {
        if (el.getAttribute("data-dblclick") == 1) {
          onsingle();
        }
        el.removeAttribute("data-dblclick");
      }, 200);
    } else {
      el.removeAttribute("data-dblclick");
      ondouble();
    }
  }
}

function smoothScrollToRow(rowid) {
  document.getElementById(rowid).scrollIntoView({
    behavior: "smooth",
    block: "center",
    inline: "nearest"
  });
}

function focusInputField(input) {
  input.scrollIntoView(false);
  input.focus();
  input.select();
}

function copyToClipboard() {
  var text = '';
  for (var node of bomhead.childNodes[0].childNodes) {
    if (node.firstChild) {
      text = text + node.firstChild.nodeValue;
    }
    if (node != bomhead.childNodes[0].lastChild) {
      text += '\t';
    }
  }
  text += '\n';
  for (var row of bombody.childNodes) {
    for (var cell of row.childNodes) {
      for (var node of cell.childNodes) {
        if (node.nodeName == "INPUT") {
          if (node.checked) {
            text = text + '✓';
          }
        } else if (node.nodeName == "MARK") {
          text = text + node.firstChild.nodeValue;
        } else {
          text = text + node.nodeValue;
        }
      }
      if (cell != row.lastChild) {
        text += '\t';
      }
    }
    text += '\n';
  }
  var textArea = document.createElement("textarea");
  textArea.classList.add('clipboard-temp');
  textArea.value = text;

  document.body.appendChild(textArea);
  textArea.focus();
  textArea.select();

  try {
    if (document.execCommand('copy')) {
      console.log('Bom copied to clipboard.');
    }
  } catch (err) {
    console.log('Can not copy to clipboard.');
  }

  document.body.removeChild(textArea);
}

function removeGutterNode(node) {
  for (var i = 0; i < node.childNodes.length; i++) {
    if (node.childNodes[i].classList &&
      node.childNodes[i].classList.contains("gutter")) {
      node.removeChild(node.childNodes[i]);
      break;
    }
  }
}

function cleanGutters() {
  removeGutterNode(document.getElementById("bot"));
  removeGutterNode(document.getElementById("canvasdiv"));
}

var units = {
  prefixes: {
    giga: ["G", "g", "giga", "Giga", "GIGA"],
    mega: ["M", "mega", "Mega", "MEGA"],
    kilo: ["K", "k", "kilo", "Kilo", "KILO"],
    milli: ["m", "milli", "Milli", "MILLI"],
    micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
    nano: ["N", "n", "nano", "Nano", "NANO"],
    pico: ["P", "p", "pico", "Pico", "PICO"],
  },
  unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
  unitsLong: [
    "OHM", "Ohm", "ohm", "ohms",
    "FARAD", "Farad", "farad",
    "HENRY", "Henry", "henry"
  ],
  getMultiplier: function(s) {
    if (this.prefixes.giga.includes(s)) return 1e9;
    if (this.prefixes.mega.includes(s)) return 1e6;
    if (this.prefixes.kilo.includes(s)) return 1e3;
    if (this.prefixes.milli.includes(s)) return 1e-3;
    if (this.prefixes.micro.includes(s)) return 1e-6;
    if (this.prefixes.nano.includes(s)) return 1e-9;
    if (this.prefixes.pico.includes(s)) return 1e-12;
    return 1;
  },
  valueRegex: null,
}

function initUtils() {
  var allPrefixes = units.prefixes.giga
                    .concat(units.prefixes.mega)
                    .concat(units.prefixes.kilo)
                    .concat(units.prefixes.milli)
                    .concat(units.prefixes.micro)
                    .concat(units.prefixes.nano)
                    .concat(units.prefixes.pico);
  var allUnits = units.unitsShort.concat(units.unitsLong);
  units.valueRegex = new RegExp("^([0-9\.]+)" +
                         "\\s*(" + allPrefixes.join("|") + ")?" +
                         "(" + allUnits.join("|") + ")?" +
                         "(\\b.*)?$", "");
  units.valueAltRegex = new RegExp("^([0-9]*)" +
                         "(" + units.unitsShort.join("|") + ")?" +
                         "([GgMmKkUuNnPp])?" +
                         "([0-9]*)" +
                         "(\\b.*)?$", "");
  for (var bom_type of ["both", "F", "B"]) {
    for (var row of pcbdata.bom[bom_type]) {
      row.push(parseValue(row[1], row[3][0][0]));
    }
  }
}

function parseValue(val, ref) {
  var inferUnit = (unit, ref) => {
    if (unit) {
      unit = unit.toLowerCase();
      if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
        unit = 'r';
      }
      unit = unit[0];
    } else {
      ref = /^([a-z]+)\d+$/i.exec(ref);
      if (ref) {
        ref = ref[1].toLowerCase();
        if (ref == "c") unit = 'f';
        else if (ref == "l") unit = 'h';
        else if (ref == "r" || ref == "rv") unit = 'r';
        else unit = null;
      }
    }
    return unit;
  };
  val = val.replace(/,/g, "");
  var match = units.valueRegex.exec(val);
  var unit;
  if (match) {
    val = parseFloat(match[1]);
    if (match[2]) {
      val = val * units.getMultiplier(match[2]);
    }
    unit = inferUnit(match[3], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[4],
    }
  }
  match = units.valueAltRegex.exec(val);
  if (match && (match[1] || match[4])) {
    val = parseFloat(match[1] + "." + match[4]);
    if (match[3]) {
      val = val * units.getMultiplier(match[3]);
    }
    unit = inferUnit(match[2], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[5],
    }
  }
  return null;
}

function valueCompare(a, b, stra, strb) {
  if (a === null && b === null) {
    // Failed to parse both values, compare them as strings.
    if (stra != strb) return stra > strb ? 1 : -1;
    else return 0;
  } else if (a === null) {
    return 1;
  } else if (b === null) {
    return -1;
  } else {
    if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
    else if (a.val != b.val) return a.val > b.val ? 1 : -1;
    else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
    else return 0;
  }
}

function validateSaveImgDimension(element) {
  var valid = false;
  var intValue = 0;
  if (/^[1-9]\d*$/.test(element.value)) {
    intValue = parseInt(element.value);
    if (intValue <= 16000) {
      valid = true;
    }
  }
  if (valid) {
    element.classList.remove("invalid");
  } else {
    element.classList.add("invalid");
  }
  return intValue;
}

function saveImage(layer) {
  var width = validateSaveImgDimension(document.getElementById("render-save-width"));
  var height = validateSaveImgDimension(document.getElementById("render-save-height"));
  var bgcolor = null;
  if (!document.getElementById("render-save-transparent").checked) {
    var style = getComputedStyle(topmostdiv);
    bgcolor = style.getPropertyValue("background-color");
  }
  if (!width || !height) return;

  // Prepare image
  var canvas = document.createElement("canvas");
  var layerdict = {
    transform: {
      x: 0,
      y: 0,
      s: 1,
      panx: 0,
      pany: 0,
      zoom: 1,
    },
    bg: canvas,
    fab: canvas,
    silk: canvas,
    highlight: canvas,
    layer: layer,
  }
  // Do the rendering
  recalcLayerScale(layerdict, width, height);
  prepareLayer(layerdict);
  clearCanvas(canvas, bgcolor);
  drawBackground(layerdict, false);
  drawHighlightsOnLayer(layerdict, false);

  // Save image
  var imgdata = canvas.toDataURL("image/png");

  var filename = pcbdata.metadata.title;
  if (pcbdata.metadata.revision) {
    filename += `.${pcbdata.metadata.revision}`;
  }
  filename += `.${layer}.png`;
  saveFile(filename, dataURLtoBlob(imgdata));
}

function saveSettings() {
  var data = {
    type: "InteractiveHtmlBom settings",
    version: 1,
    pcbmetadata: pcbdata.metadata,
    settings: settings,
  }
  var blob = new Blob([JSON.stringify(data, null, 4)], {type: "application/json"});
  saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
}

function loadSettings() {
  var input = document.createElement("input");
  input.type = "file";
  input.accept = ".settings.json";
  input.onchange = function(e) {
    var file = e.target.files[0];
    var reader = new FileReader();
    reader.onload = readerEvent => {
      var content = readerEvent.target.result;
      var newSettings;
      try {
        newSettings = JSON.parse(content);
      } catch(e) {
        alert("Selected file is not InteractiveHtmlBom settings file.");
        return;
      }
      if (newSettings.type != "InteractiveHtmlBom settings") {
        alert("Selected file is not InteractiveHtmlBom settings file.");
        return;
      }
      var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
      if (metadataMatches) {
        for (var k in pcbdata.metadata) {
          if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
            metadataMatches = false;
          }
        }
      }
      if (!metadataMatches) {
        var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
        var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
        if (!confirm(
          `Settins file metadata does not match current metadata.\n\n` +
          `Page metadata:\n${currentMetadata}\n\n` +
          `Settings file metadata:\n${fileMetadata}\n\n` +
          `Press OK if you would like to import settings anyway.`)) {
          return;
        }
      }
      overwriteSettings(newSettings.settings);
    }
    reader.readAsText(file, 'UTF-8');
  }
  input.click();
}

function overwriteSettings(newSettings) {

  initDone = false;
  Object.assign(settings, newSettings);
  writeStorage("bomlayout", settings.bomlayout);
  writeStorage("bommode", settings.bommode);
  writeStorage("canvaslayout", settings.canvaslayout);
  writeStorage("bomCheckboxes", settings.checkboxes.join(","));
  document.getElementById("bomCheckboxes").value = settings.checkboxes.join(",");
  for (var checkbox of settings.checkboxes) {
    writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
  }
  writeStorage("darkenWhenChecked", settings.darkenWhenChecked);
  padsVisible(settings.renderPads);
  document.getElementById("padsCheckbox").checked = settings.renderPads;
  fabricationVisible(settings.renderFabrication);
  document.getElementById("fabricationCheckbox").checked = settings.renderFabrication;
  silkscreenVisible(settings.renderSilkscreen);
  document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen;
  referencesVisible(settings.renderReferences);
  document.getElementById("referencesCheckbox").checked = settings.renderReferences;
  valuesVisible(settings.renderValues);
  document.getElementById("valuesCheckbox").checked = settings.renderValues;
  tracksVisible(settings.renderTracks);
  document.getElementById("tracksCheckbox").checked = settings.renderTracks;
  zonesVisible(settings.renderZones);
  document.getElementById("zonesCheckbox").checked = settings.renderZones;
  dnpOutline(settings.renderDnpOutline);
  document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline;
  setRedrawOnDrag(settings.redrawOnDrag);
  document.getElementById("dragCheckbox").checked = settings.redrawOnDrag;
  setShowCrosshair(settings.showCrosshair);
  document.getElementById("crosshairCheckbox").checked = settings.showCrosshair;
  setDarkMode(settings.darkMode);
  document.getElementById("darkmodeCheckbox").checked = settings.darkMode;
  setHighlightPin1(settings.highlightpin1);
  document.getElementById("highlightpin1Checkbox").checked = settings.highlightpin1;
  writeStorage("boardRotation", settings.boardRotation);
  document.getElementById("boardRotation").value = settings.boardRotation / 5;
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  initDone = true;
  prepCheckboxes();
  changeBomLayout(settings.bomlayout);
}

function saveFile(filename, blob) {
  var link = document.createElement("a");
  var objurl = URL.createObjectURL(blob);
  link.download = filename;
  link.href = objurl;
  link.click();
}

function dataURLtoBlob(dataurl) {
  var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
      bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
  while(n--){
      u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], {type:mime});
}

var settings = {
  canvaslayout: "default",
  bomlayout: "default",
  bommode: "grouped",
  checkboxes: [],
  checkboxStoredRefs: {},
  darkMode: false,
  highlightpin1: false,
  redrawOnDrag: true,
  boardRotation: 0,
  renderPads: true,
  renderReferences: true,
  renderValues: true,
  renderSilkscreen: true,
  renderFabrication: true,
  renderDnpOutline: false,
  renderTracks: true,
  renderZones: true,
}

function initDefaults() {
  settings.bomlayout = readStorage("bomlayout");
  if (settings.bomlayout === null) {
    settings.bomlayout = config.bom_view;
  }
  if (!['bom-only', 'left-right', 'top-bottom'].includes(settings.bomlayout)) {
    settings.bomlayout = config.bom_view;
  }
  settings.bommode = readStorage("bommode");
  if (settings.bommode === null) {
    settings.bommode = "grouped";
  }
  if (!["grouped", "ungrouped", "netlist"].includes(settings.bommode)) {
    settings.bommode = "grouped";
  }
  settings.canvaslayout = readStorage("canvaslayout");
  if (settings.canvaslayout === null) {
    settings.canvaslayout = config.layer_view;
  }
  var bomCheckboxes = readStorage("bomCheckboxes");
  if (bomCheckboxes === null) {
    bomCheckboxes = config.checkboxes;
  }
  settings.checkboxes = bomCheckboxes.split(",").filter((e) => e);
  document.getElementById("bomCheckboxes").value = bomCheckboxes;

  settings.darkenWhenChecked = readStorage("darkenWhenChecked") || "";
  populateDarkenWhenCheckedOptions();

  function initBooleanSetting(storageString, def, elementId, func) {    
    var b = readStorage(storageString);
    if (b === null) {
      b = def;
    } else {
      b = (b === true);
    }
    document.getElementById(elementId).checked = b;
    func(b);
  }

  initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible);
  initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible);
  initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible);
  initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible);
  initBooleanSetting("valuesVisible", false, "valuesCheckbox", valuesVisible);
  if ("tracks" in pcbdata) {
    initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible);
    initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible);
  } else {
    document.getElementById("tracksAndZonesCheckboxes").style.display = "none";
    tracksVisible(false);
    zonesVisible(false);
  }
  initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline);
  initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag);
  initBooleanSetting("showCrosshair", config.show_crosshair, "crosshairCheckbox", setShowCrosshair);
  initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode);
  initBooleanSetting("highlightpin1", config.highlight_pin1, "highlightpin1Checkbox", setHighlightPin1);
  settings.boardRotation = readStorage("boardRotation");
  if (settings.boardRotation === null) {
    settings.boardRotation = config.board_rotation * 5;
  } else {
    settings.boardRotation = parseInt(settings.boardRotation);
  }
  document.getElementById("boardRotation").value = settings.boardRotation / 5;
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
}

// Helper classes for user js callbacks.

const IBOM_EVENT_TYPES = {
  ALL: "all",
  HIGHLIGHT_EVENT: "highlightEvent",
  CHECKBOX_CHANGE_EVENT: "checkboxChangeEvent",
  BOM_BODY_CHANGE_EVENT: "bomBodyChangeEvent",
}

const EventHandler = {
  callbacks: {},
  init: function() {
    for (eventType of Object.values(IBOM_EVENT_TYPES))
      this.callbacks[eventType] = [];
  },
  registerCallback: function(eventType, callback) {
    this.callbacks[eventType].push(callback);
  },
  emitEvent: function(eventType, eventArgs) {
    event = {
      eventType: eventType,
      args: eventArgs,
    }
    var callback;
    for(callback of this.callbacks[eventType])
      callback(event);
    for(callback of this.callbacks[IBOM_EVENT_TYPES.ALL])
      callback(event);
  }
}
EventHandler.init();

///////////////////////////////////////////////

///////////////////////////////////////////////
/* PCB rendering code */

var emptyContext2d = document.createElement("canvas").getContext("2d");
var hitTestContext2d = document.createElement("canvas").getContext("2d");

function deg2rad(deg) {
  return deg * Math.PI / 180;
}

function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
  var point = [
    linepoint[0] * text.width + offsetx,
    linepoint[1] * text.height + offsety
  ];
  // This approximates pcbnew behavior with how text tilts depending on horizontal justification
  point[0] -= (linepoint[1] + 0.5 * (1 + text.justify[0])) * text.height * tilt;
  return point;
}

function drawText(ctx, text, color) {
  if ("ref" in text && !settings.renderReferences) return;
  if ("val" in text && !settings.renderValues) return;
  ctx.save();
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  ctx.lineCap = "round";
  ctx.lineJoin = "round";
  ctx.lineWidth = text.thickness;

  if ("svgpath" in text) {    
    // TODO: This path must be cached!
    const path = new Path2D(text.svgpath);
    if(text.useTrueTypeFontRendering) {            
      ctx.fill(path);
    } else {
      ctx.stroke(path);
    }
    
    ctx.restore();
    return;
  }

  ctx.translate(...text.pos);
  ctx.translate(text.thickness * 0.5, 0);
  var angle = -text.angle;
  if (text.attr.includes("mirrored")) {
    ctx.scale(-1, 1);
    angle = -angle;
  }
  var tilt = 0;
  if (text.attr.includes("italic")) {
    tilt = 0.125;
  }
  var interline = text.height * 1.5 + text.thickness;
  var txt = text.text.split("\n");
  // KiCad ignores last empty line.
  if (txt[txt.length - 1] == '') txt.pop();
  ctx.rotate(deg2rad(angle));
  var offsety = (1 - text.justify[1]) / 2 * text.height; // One line offset
  offsety -= (txt.length - 1) * (text.justify[1] + 1) / 2 * interline; // Multiline offset
  for (var i in txt) {
    var lineWidth = text.thickness + interline / 2 * tilt;
    for (var j = 0; j < txt[i].length; j++) {
      if (txt[i][j] == '\t') {
        var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
        lineWidth += fourSpaces - lineWidth % fourSpaces;
      } else {
        if (txt[i][j] == '~') {
          j++;
          if (j == txt[i].length)
            break;
        }
        lineWidth += pcbdata.font_data[txt[i][j]].w * text.width;
      }
    }
    var offsetx = -lineWidth * (text.justify[0] + 1) / 2;
    var inOverbar = false;
    for (var j = 0; j < txt[i].length; j++) {
      if (txt[i][j] == '\t') {
        var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
        offsetx += fourSpaces - offsetx % fourSpaces;
        continue;
      } else if (txt[i][j] == '~') {
        j++;
        if (j == txt[i].length)
          break;
        if (txt[i][j] != '~') {
          inOverbar = !inOverbar;
        }
      }
      var glyph = pcbdata.font_data[txt[i][j]];
      if (inOverbar) {
        var overbarStart = [offsetx, -text.height * 1.4 + offsety];
        var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]];

        if (!lastHadOverbar) {
          overbarStart[0] += text.height * 1.4 * tilt;
          lastHadOverbar = true;
        }
        ctx.beginPath();
        ctx.moveTo(...overbarStart);
        ctx.lineTo(...overbarEnd);
        ctx.stroke();
      } else {
        lastHadOverbar = false;
      }
      for (var line of glyph.l) {
        ctx.beginPath();
        ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
        for (var k = 1; k < line.length; k++) {
          ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt));
        }
        ctx.stroke();
      }
      offsetx += glyph.w * text.width;
    }
    offsety += interline;
  }
  ctx.restore();
}

function drawedge(ctx, scalefactor, edge, color) {
  ctx.strokeStyle = color;
  ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
  ctx.lineCap = "round";
  if ("svgpath" in edge) {
    ctx.stroke(new Path2D(edge.svgpath));
  } else {
    ctx.beginPath();
    if (edge.type == "segment") {
      ctx.moveTo(...edge.start);
      ctx.lineTo(...edge.end);
    }
    if (edge.type == "rect") {
      ctx.moveTo(...edge.start);
      ctx.lineTo(edge.start[0], edge.end[1]);
      ctx.lineTo(...edge.end);
      ctx.lineTo(edge.end[0], edge.start[1]);
      ctx.lineTo(...edge.start);
    }
    if (edge.type == "arc") {
      ctx.arc(
        ...edge.start,
        edge.radius,
        deg2rad(edge.startangle),
        deg2rad(edge.endangle));
    }
    if (edge.type == "circle") {
      ctx.arc(
        ...edge.start,
        edge.radius,
        0, 2 * Math.PI);
      ctx.closePath();
    }
    if (edge.type == "curve") {
      ctx.moveTo(...edge.start);
      ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end);
    }
    ctx.stroke();
  }
}

function getChamferedRectPath(size, radius, chamfpos, chamfratio) {
  // chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8
  var path = new Path2D();
  var width = size[0];
  var height = size[1];
  var x = width * -0.5;
  var y = height * -0.5;
  var chamfOffset = Math.min(width, height) * chamfratio;
  path.moveTo(x, 0);
  if (chamfpos & 4) {
    path.lineTo(x, y + height - chamfOffset);
    path.lineTo(x + chamfOffset, y + height);
    path.lineTo(0, y + height);
  } else {
    path.arcTo(x, y + height, x + width, y + height, radius);
  }
  if (chamfpos & 8) {
    path.lineTo(x + width - chamfOffset, y + height);
    path.lineTo(x + width, y + height - chamfOffset);
    path.lineTo(x + width, 0);
  } else {
    path.arcTo(x + width, y + height, x + width, y, radius);
  }
  if (chamfpos & 2) {
    path.lineTo(x + width, y + chamfOffset);
    path.lineTo(x + width - chamfOffset, y);
    path.lineTo(0, y);
  } else {
    path.arcTo(x + width, y, x, y, radius);
  }
  if (chamfpos & 1) {
    path.lineTo(x + chamfOffset, y);
    path.lineTo(x, y + chamfOffset);
    path.lineTo(x, 0);
  } else {
    path.arcTo(x, y, x, y + height, radius);
  }
  path.closePath();
  return path;
}

function getOblongPath(size) {
  return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0);
}

function getPolygonsPath(shape) {
  if (shape.path2d) {
    return shape.path2d;
  }
  if ("svgpath" in shape) {
    shape.path2d = new Path2D(shape.svgpath);
  } else {
    var path = new Path2D();
    for (var polygon of shape.polygons) {
      path.moveTo(...polygon[0]);
      for (var i = 1; i < polygon.length; i++) {
        path.lineTo(...polygon[i]);
      }
      path.closePath();
    }
    shape.path2d = path;
  }
  return shape.path2d;
}

function drawPolygonShape(ctx, shape, color) {
  ctx.save();
  ctx.fillStyle = color;
  if (!("svgpath" in shape)) {
    ctx.translate(...shape.pos);
    ctx.rotate(deg2rad(-shape.angle));
  }
  ctx.fill(getPolygonsPath(shape));
  ctx.restore();
}


function drawPolylineShape(ctx, shape, color) {
  ctx.save();
  ctx.strokeStyle = color;
  ctx.lineWidth = shape.width;
  if (!("svgpath" in shape)) {
    ctx.translate(...shape.pos);
    ctx.rotate(deg2rad(-shape.angle));
  }
  ctx.stroke(getPolygonsPath(shape));
  ctx.restore();
}

function drawDrawing(ctx, scalefactor, drawing, color) {  
  if (["segment", "arc", "circle", "curve"].includes(drawing.type)) {
    drawedge(ctx, scalefactor, drawing, color);
  } else if (drawing.type == "polygon") {
    drawPolygonShape(ctx, drawing, color);
  } else if (drawing.type == "text") {    
    drawText(ctx, drawing, color);
  } else if (drawing.type == "polyline") {    
    drawPolylineShape(ctx, drawing, color);
  }
}

function getCirclePath(radius) {
  var path = new Path2D();
  path.arc(0, 0, radius, 0, 2 * Math.PI);
  path.closePath();
  return path;
}

function getCachedPadPath(pad) {
  if (!pad.path2d) {
    // if path2d is not set, build one and cache it on pad object
    if (pad.shape == "rect") {
      pad.path2d = new Path2D();
      pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size);
    } else if (pad.shape == "oval") {
      pad.path2d = getOblongPath(pad.size);
    } else if (pad.shape == "circle") {
      pad.path2d = getCirclePath(pad.size[0] / 2);
    } else if (pad.shape == "roundrect") {
      pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0);
    } else if (pad.shape == "chamfrect") {
      pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio)
    } else if (pad.shape == "custom") {
      pad.path2d = getPolygonsPath(pad);
    } else if(pad.shape === "polygon") {      
      pad.path2d = new Path2D();
      if(pad.polygon.length > 1) {
        const pos = {
          x: pad.pos[0],
          y: pad.pos[1]
        };

        pad.path2d.moveTo(pad.polygon[0].x - pos.x, pad.polygon[0].y - pos.y);
        for (var i = 1; i < pad.polygon.length; i++) {
          const point = pad.polygon[i];          
          pad.path2d.lineTo(point.x - pos.x, point.y - pos.y);
        }
        pad.path2d.closePath();              
      }
    }
  }
  return pad.path2d;
}

function drawPad(ctx, pad, color, outline) {
  ctx.save();
  ctx.translate(...pad.pos);
  if(pad.shape !== 'polygon') {
    ctx.rotate(deg2rad(pad.angle));  
  } else {
    ctx.rotate(deg2rad(0));  
  }
  
  if (pad.offset) {
    ctx.translate(...pad.offset);
  }
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  var path = getCachedPadPath(pad);
  if (outline) {
    ctx.stroke(path);
  } else {
    ctx.fill(path);
  }
  ctx.restore();
}

function drawPadHole(ctx, pad, padHoleColor) {
  if (pad.type != "th") {
    return
  };

  ctx.save();
  ctx.translate(pad.holeCenterPoint.x, pad.holeCenterPoint.y);    
  ctx.rotate(deg2rad(pad.angle));
  ctx.fillStyle = padHoleColor;
  if (pad.drillshape == "oblong") {
    ctx.fill(getOblongPath(pad.drillsize));
  } else {
    ctx.fill(getCirclePath(pad.drillsize[0] / 2));
  }
  ctx.restore();
}

function drawFootprint(ctx, layer, scalefactor, footprint, padColor, padHoleColor, outlineColor, highlight, outline) {
  if (highlight) {
    // draw bounding box
    if (footprint.layer == layer) {
      ctx.save();
      ctx.globalAlpha = 0.2;
      ctx.translate(...footprint.bbox.pos);
      ctx.rotate(deg2rad(-footprint.bbox.angle));
      ctx.translate(...footprint.bbox.relpos);
      ctx.fillStyle = padColor;
      ctx.fillRect(0, 0, ...footprint.bbox.size);
      ctx.globalAlpha = 1;
      ctx.strokeStyle = padColor;
      ctx.strokeRect(0, 0, ...footprint.bbox.size);
      ctx.restore();
    }
  }
  // draw drawings
  for (var drawing of footprint.drawings) {
    if (drawing.layer == layer) {
      drawDrawing(ctx, scalefactor, drawing.drawing, padColor);
    }
  }
  // draw pads
  if (settings.renderPads) {
    for (var pad of footprint.pads) {
      if (pad.layers.includes(layer)) {
        drawPad(ctx, pad, padColor, outline);
        if (pad.pin1 && settings.highlightpin1) {
          drawPad(ctx, pad, outlineColor, true);
        }
      }
    }
    for (var pad of footprint.pads) {
      drawPadHole(ctx, pad, padHoleColor);
    }
  }
}

function drawCrosshair(canvas, x, y, scalefactor, color) {
  if(!settings.showCrosshair) {
    return;
  }

  var ctx = canvas.getContext("2d");

  HTMLFormControlsCollection.log
  
  ctx.save();
  ctx.globalAlpha = 0.75;
  ctx.lineWidth = 2 / scalefactor;
  ctx.strokeStyle = color;

  // TODO: Should calculate a proper bbox for the view port.
  const dummyOffset = 4000;

  // horz line
  ctx.beginPath();
  ctx.moveTo(x - dummyOffset, y);
  ctx.lineTo(x + dummyOffset, y);
  ctx.stroke();

  // vert line
  ctx.beginPath();
  ctx.moveTo(x, y - dummyOffset);
  ctx.lineTo(x, y + dummyOffset);
  ctx.stroke();

  ctx.globalAlpha = 1;
  ctx.restore();
}

function drawEdgeCuts(canvas, scalefactor) {
  var ctx = canvas.getContext("2d");
  var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
  for (var edge of pcbdata.edges) {
    drawedge(ctx, scalefactor, edge, edgecolor);
  }
}

function drawOrphanPads(canvas, layer, scalefactor, highlight, highlightedPads) {
  if (!settings.renderPads) {
    return;
  }

  highlightedPads = highlightedPads || [];

  var ctx = canvas.getContext("2d");
  ctx.save();
  ctx.lineWidth = 3 / scalefactor;
  var style = getComputedStyle(topmostdiv);
  var padColor = style.getPropertyValue('--pad-color');
  var padHoleColor = style.getPropertyValue('--pad-hole-color');  
  if (highlight) {
    padColor = style.getPropertyValue('--pad-color-highlight');
    outlineColor = style.getPropertyValue('--pin1-outline-color-highlight');
  }

  var i = 0;
  for (var pad of pcbdata.pads) {
    if (pad.layers.includes(layer)) {
      var outline = settings.renderDnpOutline;
      if (!highlight || highlightedPads.includes(i)) {
        drawPad(ctx, pad, padColor, outline); 
      }     
    }

    i++;
  }
  
  for (var pad of pcbdata.pads) {
    drawPadHole(ctx, pad, padHoleColor);
  }  

  ctx.restore();
}

function drawFootprints(canvas, layer, scalefactor, highlight) {
  var ctx = canvas.getContext("2d");
  ctx.save();
  ctx.lineWidth = 3 / scalefactor;
  var style = getComputedStyle(topmostdiv);
  var padColor = style.getPropertyValue('--pad-color');
  var padHoleColor = style.getPropertyValue('--pad-hole-color');
  var outlineColor = style.getPropertyValue('--pin1-outline-color');
  if (highlight) {
    padColor = style.getPropertyValue('--pad-color-highlight');
    outlineColor = style.getPropertyValue('--pin1-outline-color-highlight');
  }
  for (var i = 0; i < pcbdata.footprints.length; i++) {
    var mod = pcbdata.footprints[i];
    var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
    if (!highlight || highlightedFootprints.includes(i)) {
      drawFootprint(ctx, layer, scalefactor, mod, padColor, padHoleColor, outlineColor, highlight, outline);
    }
  }
  ctx.restore();
}

function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
  var ctx = canvas.getContext("2d");
  for (var d of pcbdata.drawings[layername][layer]) {
    if (["segment", "arc", "circle", "curve", "rect","polyline"].includes(d.type)) {
      drawedge(ctx, scalefactor, d, edgeColor);
    } else if (d.type == "polygon") {
      drawPolygonShape(ctx, d, polygonColor);
    } else if (d.type == "text") {
      drawText(ctx, d, polygonColor);
    }
  }
}

function drawTracks(canvas, layer, color, highlight) {
  ctx = canvas.getContext("2d");
  ctx.strokeStyle = color;
  ctx.lineCap = "round";
  for(var track of pcbdata.tracks[layer]) {
    if (highlight && highlightedNet != track.net) continue;
    ctx.lineWidth = track.width;

    if(track.type === 'polyline') {
      drawPolylineShape(ctx,track,color);
    } else if(track.type === 'polygon') {
      drawPolygonShape(ctx, track, color);
    } else if(track.type === 'text') {
      drawText(ctx, track, color);
    } else {
      if ('radius' in track) {
        ctx.beginPath();
        ctx.arc(
            ...track.center,
            track.radius,
            deg2rad(track.startangle),
            deg2rad(track.endangle));
        ctx.stroke();
      } else if('start' in track && 'end' in track) {
        ctx.beginPath();
        ctx.moveTo(...track.start);
        ctx.lineTo(...track.end);
        ctx.stroke();
      }
      
    }

  }
}

function drawZones(canvas, layer, color, highlight) {
  ctx = canvas.getContext("2d");
  ctx.save();
  ctx.strokeStyle = color;
  ctx.fillStyle = color;
  ctx.lineJoin = "round";
  for(var zone of pcbdata.zones[layer]) {
    if (!zone.path2d) {
      zone.path2d = getPolygonsPath(zone);
    }
    if (highlight && highlightedNet != zone.net) continue;
    ctx.fill(zone.path2d);
    if (zone.width > 0) {
      ctx.lineWidth = zone.width;
      ctx.stroke(zone.path2d);
    }
  }
  ctx.restore();
}

function clearCanvas(canvas, color = null) {
  var ctx = canvas.getContext("2d");
  ctx.save();
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  if (color) {
    ctx.fillStyle = color;
    ctx.fillRect(0, 0, canvas.width, canvas.height);
  } else {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
  }
  ctx.restore();
}

function drawNets(canvas, layer, highlight) {
  var style = getComputedStyle(topmostdiv);
  if (settings.renderTracks) {
    var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
    drawTracks(canvas, layer, trackColor, highlight);
  }
  if (settings.renderZones) {
    var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
    drawZones(canvas, layer, zoneColor, highlight);
  }
  if (highlight && settings.renderPads) {
    var padColor = style.getPropertyValue('--pad-color-highlight');
    var padHoleColor = style.getPropertyValue('--pad-hole-color');
    var ctx = canvas.getContext("2d");
    for (var footprint of pcbdata.footprints) {
      // draw pads
      var padDrawn = false;
      for (var pad of footprint.pads) {
        if (highlightedNet != pad.net) continue;
        if (pad.layers.includes(layer)) {
          drawPad(ctx, pad, padColor, false);
          padDrawn = true;
        }
      }
      if (padDrawn) {
        // redraw all pad holes because some pads may overlap
        for (var pad of footprint.pads) {
          drawPadHole(ctx, pad, padHoleColor);
        }
      }
    }
  }
}

function drawHighlightsOnLayer(canvasdict, clear = true) {
  if (clear) {
    clearCanvas(canvasdict.highlight);
  }
  
  if (highlightedFootprints.length > 0) {
    drawFootprints(canvasdict.highlight, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom, true);
  }

  // Draw crosshairs
  if (highlightedFootprints.length > 0) {
    for(var i = 0; i < pcbdata.footprints.length; i++) {
      const footprint = pcbdata.footprints[i];
      if(highlightedFootprints.includes(i) && footprint.layer === canvasdict.layer) {
        drawCrosshair(canvasdict.highlight, footprint.center[0], footprint.center[1], canvasdict.transform.s * canvasdict.transform.zoom, 'red');
      }
    }
  }

  if (highlightedNet !== null) {
    var highlightedPads = [];
    for(var i = 0; i < pcbdata.pads.length; i++) {
      var pad = pcbdata.pads[i];
      if(pad.net === highlightedNet) {
        highlightedPads.push(i);
      }
    }
    
    drawOrphanPads(canvasdict.highlight, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom, true, highlightedPads);

    drawNets(canvasdict.highlight, canvasdict.layer, true);
  }
}

function drawHighlights() {
  drawHighlightsOnLayer(allcanvas.front);
  drawHighlightsOnLayer(allcanvas.back);
}

function drawBackground(canvasdict, clear = true) {
  if (clear) {
    clearCanvas(canvasdict.bg);
    clearCanvas(canvasdict.fab);
    clearCanvas(canvasdict.silk);
  }

  drawNets(canvasdict.bg, canvasdict.layer, false);

  drawOrphanPads(canvasdict.bg, canvasdict.layer, canvasdict.transform.s * canvasdict.transform.zoom, false);

  drawFootprints(canvasdict.bg, canvasdict.layer, canvasdict.transform.s * canvasdict.transform.zoom, false);

  drawEdgeCuts(canvasdict.bg, canvasdict.transform.s);

  var style = getComputedStyle(topmostdiv);
  var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
  var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
  var textColor = style.getPropertyValue('--silkscreen-text-color');
  if (settings.renderSilkscreen) {
    drawBgLayer(
      "silkscreen", canvasdict.silk, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom,
      edgeColor, polygonColor, textColor);
  }
  edgeColor = style.getPropertyValue('--fabrication-edge-color');
  polygonColor = style.getPropertyValue('--fabrication-polygon-color');
  textColor = style.getPropertyValue('--fabrication-text-color');
  if (settings.renderFabrication) {
    drawBgLayer(
      "fabrication", canvasdict.fab, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom,
      edgeColor, polygonColor, textColor);
  }
}

function prepareCanvas(canvas, flip, transform) {
  var ctx = canvas.getContext("2d");
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  var fontsize = 1.55;
  ctx.scale(transform.zoom, transform.zoom);
  ctx.translate(transform.panx, transform.pany);
  if (flip) {
    ctx.scale(-1, 1);
  }
  ctx.translate(transform.x, transform.y);
  ctx.rotate(deg2rad(settings.boardRotation));
  ctx.scale(transform.s, transform.s);
}

function prepareLayer(canvasdict) {
  var flip = (canvasdict.layer == "B");
  for (var c of ["bg", "fab", "silk", "highlight"]) {
    prepareCanvas(canvasdict[c], flip, canvasdict.transform);
  }
}

function rotateVector(v, angle) {
  angle = deg2rad(angle);
  return [
    v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
    v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
  ];
}

function applyRotation(bbox) {
  var corners = [
    [bbox.minx, bbox.miny],
    [bbox.minx, bbox.maxy],
    [bbox.maxx, bbox.miny],
    [bbox.maxx, bbox.maxy],
  ];
  corners = corners.map((v) => rotateVector(v, settings.boardRotation));
  return {
    minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
    miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
    maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
    maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
  }
}

function recalcLayerScale(layerdict, width, height) {
  var bbox = applyRotation(pcbdata.edges_bbox);
  var scalefactor = 0.98 * Math.min(
    width / (bbox.maxx - bbox.minx),
    height / (bbox.maxy - bbox.miny)
  );
  if (scalefactor < 0.1) {
    scalefactor = 1;
  }
  layerdict.transform.s = scalefactor;
  var flip = (layerdict.layer == "B");
  if (flip) {
    layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
  } else {
    layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
  }
  layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
  for (var c of ["bg", "fab", "silk", "highlight"]) {
    canvas = layerdict[c];
    canvas.width = width;
    canvas.height = height;
    canvas.style.width = (width / devicePixelRatio) + "px";
    canvas.style.height = (height / devicePixelRatio) + "px";
  }
}

function redrawCanvas(layerdict) {
  prepareLayer(layerdict);
  drawBackground(layerdict);
  drawHighlightsOnLayer(layerdict);
}

function resizeCanvas(layerdict) {
  var canvasdivid = {
    "F": "frontcanvas",
    "B": "backcanvas"
  } [layerdict.layer];
  var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
  var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
  recalcLayerScale(layerdict, width, height);
  redrawCanvas(layerdict);
}

function resizeAll() {
  resizeCanvas(allcanvas.front);
  resizeCanvas(allcanvas.back);
}

function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var dx, dy;
  if (len_sq == 0) {
    // start and end of the segment coincide
    dx = x - x1;
    dy = y - y1;
  } else {
    var param = dot / len_sq;
    var xx, yy;
    if (param < 0) {
      xx = x1;
      yy = y1;
    } else if (param > 1) {
      xx = x2;
      yy = y2;
    } else {
      xx = x1 + param * C;
      yy = y1 + param * D;
    }
    dx = x - xx;
    dy = y - yy;
  }
  return dx * dx + dy * dy <= d * d;
}

function modulo(n, mod) {
  return ((n % mod) + mod ) % mod;
}

function pointWithinDistanceToArc(x, y, xc, yc, radius, startangle, endangle, d) {
  var dx = x - xc;
  var dy = y - yc;
  var r_sq = dx * dx + dy * dy;
  var rmin = Math.max(0, radius-d);
  var rmax = radius + d;

  if (r_sq < rmin * rmin || r_sq > rmax * rmax)
    return false;

  var angle1 = modulo(deg2rad(startangle), 2 * Math.PI);
  var dx1 = xc + radius * Math.cos(angle1) - x;
  var dy1 = yc + radius * Math.sin(angle1) - y;
  if (dx1 * dx1 + dy1 * dy1 <= d * d)
    return true;

  var angle2 = modulo(deg2rad(endangle), 2 * Math.PI);
  var dx2 = xc + radius * Math.cos(angle2) - x;
  var dy2 = yc + radius * Math.sin(angle2) - y;
  if (dx2 * dx2 + dy2 * dy2 <= d * d)
    return true;

  var angle = modulo(Math.atan2(dy, dx), 2 * Math.PI);
  if (angle1 > angle2)
    return (angle >= angle2 || angle <= angle1);
  else
    return (angle >= angle1 && angle <= angle2);
}

function pointWithinPad(x, y, pad) {
  var v = [x - pad.pos[0], y - pad.pos[1]];
  v = rotateVector(v, -pad.angle);
  if (pad.offset) {
    v[0] -= pad.offset[0];
    v[1] -= pad.offset[1];
  }
  return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}

function netHitScan(layer, x, y) {
  // TODO: Should be refactored

  // Check track segments
  if (settings.renderTracks && pcbdata.tracks) {
    for(var track of pcbdata.tracks[layer]) {
      if(track.type === 'polyline') {
        const path = getPolygonsPath(track);
        if(path) {
          hitTestContext2d.save();
          hitTestContext2d.lineWidth = track.width;
          
          if(hitTestContext2d.isPointInStroke(path,x,y)) {
            hitTestContext2d.restore();
            return track.net;            
          }
          
          hitTestContext2d.restore();          
        }        

      } else if(track.type === 'polygon') {
        const path = getPolygonsPath(track);
        if(path && hitTestContext2d.isPointInPath(path,x,y)) {          
          return track.net;                      
        }                     
      } else if(track.type === 'text') {
        // TODO: To implement taking in account TrueType fonts.
      } else if ('radius' in track) {
        if (pointWithinDistanceToArc(x, y, ...track.center, track.radius, track.startangle, track.endangle, track.width / 2)) {
          return track.net;
        }
      } else if('start' in track && 'end' in track) {
        if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
          return track.net;
        }
      }
    }
  }
  // Check pads
  if (settings.renderPads) {

    // Footprints containing pads
    for (var footprint of pcbdata.footprints) {
      for(var pad of footprint.pads) {
        if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
          return pad.net;
        }
      }
    }

    // Orphan pads
    for(var pad of pcbdata.pads) {
      if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
        return pad.net;
      }
    }
  }
  return null;
}

function pointWithinFootprintBbox(x, y, bbox) {
  var v = [x - bbox.pos[0], y - bbox.pos[1]];
  v = rotateVector(v, bbox.angle);
  return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
         bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
}

function bboxHitScan(layer, x, y) {
  var result = [];
  for (var i = 0; i < pcbdata.footprints.length; i++) {
    var footprint = pcbdata.footprints[i];
    if (footprint.layer == layer) {
      if (pointWithinFootprintBbox(x, y, footprint.bbox)) {
        result.push(i);
      }
    }
  }
  return result;
}

function handlePointerDown(e, layerdict) {
  if (e.button != 0 && e.button != 1) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();

  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  layerdict.pointerStates[e.pointerId] = {
    distanceTravelled: 0,
    lastX: e.offsetX,
    lastY: e.offsetY,
    downTime: Date.now(),
  };
}

function handleMouseClick(e, layerdict) {
  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  var x = e.offsetX;
  var y = e.offsetY;
  var t = layerdict.transform;
  if (layerdict.layer == "B") {
    x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
  } else {
    x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
  }
  y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
  var v = rotateVector([x, y], -settings.boardRotation);
  if ("nets" in pcbdata) {
    var net = netHitScan(layerdict.layer, ...v);
    if (net !== highlightedNet) {
      netClicked(net);
    }
  }
  if (highlightedNet === null) {
    var footprints = bboxHitScan(layerdict.layer, ...v);
    if (footprints.length > 0) {
      footprintsClicked(footprints);
    }
  }
}

function handlePointerLeave(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();

  if (!settings.redrawOnDrag) {
    redrawCanvas(layerdict);
  }

  delete layerdict.pointerStates[e.pointerId];
}

function resetTransform(layerdict) {
  layerdict.transform.panx = 0;
  layerdict.transform.pany = 0;
  layerdict.transform.zoom = 1;
  redrawCanvas(layerdict);
}

function handlePointerUp(e, layerdict) {
  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  e.preventDefault();
  e.stopPropagation();

  if (e.button == 2) {
    // Reset pan and zoom on right click.
    resetTransform(layerdict);
    layerdict.anotherPointerTapped = false;
    return;
  }

  // We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
  var ptr = layerdict.pointerStates[e.pointerId];
  ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);

  if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
    if (Object.keys(layerdict.pointerStates).length == 1) {
      if (layerdict.anotherPointerTapped) {
        // This is the second pointer coming off of a two-finger tap
        resetTransform(layerdict);
      } else {
        // This is just a regular tap
        handleMouseClick(e, layerdict);
      }
      layerdict.anotherPointerTapped = false;
    } else {
      // This is the first finger coming off of what could become a two-finger tap
      layerdict.anotherPointerTapped = true;
    }
  } else {
    if (!settings.redrawOnDrag) {
      redrawCanvas(layerdict);
    }
    layerdict.anotherPointerTapped = false;
  }

  delete layerdict.pointerStates[e.pointerId];
}

function handlePointerMove(e, layerdict) {
  if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();

  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  var thisPtr = layerdict.pointerStates[e.pointerId];

  var dx = e.offsetX - thisPtr.lastX;
  var dy = e.offsetY - thisPtr.lastY;

  // If this number is low on pointer up, we count the action as a click
  thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);

  if (Object.keys(layerdict.pointerStates).length == 1) {
    // This is a simple drag
    layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
    layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
  } else if (Object.keys(layerdict.pointerStates).length == 2) {
    var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];

    var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
    var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2)     + Math.pow(e.offsetY - otherPtr.lastY, 2));

    var scaleFactor = newDist/oldDist;

    if (scaleFactor != NaN) {
      layerdict.transform.zoom *= scaleFactor;

      var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
      layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
      layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
    }
  }

  thisPtr.lastX = e.offsetX;
  thisPtr.lastY = e.offsetY;

  if (settings.redrawOnDrag) {
    redrawCanvas(layerdict);
  }
}

function handleMouseWheel(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();
  var t = layerdict.transform;
  var wheeldelta = e.deltaY;
  if (e.deltaMode == 1) {
    // FF only, scroll by lines
    wheeldelta *= 30;
  } else if (e.deltaMode == 2) {
    wheeldelta *= 300;
  }
  var m = Math.pow(1.1, -wheeldelta / 40);
  // Limit amount of zoom per tick.
  if (m > 2) {
    m = 2;
  } else if (m < 0.5) {
    m = 0.5;
  }
  t.zoom *= m;
  var zoomd = (1 - m) / t.zoom;
  t.panx += devicePixelRatio * e.offsetX * zoomd;
  t.pany += devicePixelRatio * e.offsetY * zoomd;
  redrawCanvas(layerdict);
}

function addMouseHandlers(div, layerdict) {
  div.addEventListener("pointerdown", function(e) {
    handlePointerDown(e, layerdict);
  });
  div.addEventListener("pointermove", function(e) {
    handlePointerMove(e, layerdict);
  });
  div.addEventListener("pointerup", function(e) {
    handlePointerUp(e, layerdict);
  });
  var pointerleave = function(e) {
    handlePointerLeave(e, layerdict);
  }
  div.addEventListener("pointercancel", pointerleave);
  div.addEventListener("pointerleave", pointerleave);
  div.addEventListener("pointerout", pointerleave);

  div.onwheel = function(e) {
    handleMouseWheel(e, layerdict);
  }
  for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
    element.addEventListener("contextmenu", function(e) {
      e.preventDefault();
    }, false);
  }
}

function setRedrawOnDrag(value) {
  settings.redrawOnDrag = value;
  writeStorage("redrawOnDrag", value);
}

function setShowCrosshair(value) {
  settings.showCrosshair = value;
  writeStorage("showCrosshair", value);
}

function setBoardRotation(value) {
  settings.boardRotation = value * 5;
  writeStorage("boardRotation", settings.boardRotation);
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  resizeAll();
}

function initRender() {
  allcanvas = {
    front: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
      },
      pointerStates: {},
      anotherPointerTapped: false,
      bg: document.getElementById("F_bg"),
      fab: document.getElementById("F_fab"),
      silk: document.getElementById("F_slk"),
      highlight: document.getElementById("F_hl"),
      layer: "F",
    },
    back: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
      },
      pointerStates: {},
      anotherPointerTapped: false,
      bg: document.getElementById("B_bg"),
      fab: document.getElementById("B_fab"),
      silk: document.getElementById("B_slk"),
      highlight: document.getElementById("B_hl"),
      layer: "B",
    }
  };
  addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
  addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
}

///////////////////////////////////////////////

///////////////////////////////////////////////
/* DOM manipulation and misc code */

var bomsplit;
var canvassplit;
var initDone = false;
var bomSortFunction = null;
var currentSortColumn = null;
var currentSortOrder = null;
var currentHighlightedRowId;
var highlightHandlers = [];
var footprintIndexToHandler = {};
var netsToHandler = {};
var highlightedFootprints = [];
var highlightedOrphanPads = [];
var highlightedNet = null;
var lastClicked;

function dbg(html) {
  dbgdiv.innerHTML = html;
}

function redrawIfInitDone() {
  if (initDone) {
    redrawCanvas(allcanvas.front);
    redrawCanvas(allcanvas.back);
  }
}

function padsVisible(value) {
  writeStorage("padsVisible", value);
  settings.renderPads = value;
  redrawIfInitDone();
}

function referencesVisible(value) {
  writeStorage("referencesVisible", value);
  settings.renderReferences = value;
  redrawIfInitDone();
}

function valuesVisible(value) {
  writeStorage("valuesVisible", value);
  settings.renderValues = value;
  redrawIfInitDone();
}

function tracksVisible(value) {
  writeStorage("tracksVisible", value);
  settings.renderTracks = value;
  redrawIfInitDone();
}

function zonesVisible(value) {
  writeStorage("zonesVisible", value);
  settings.renderZones = value;
  redrawIfInitDone();
}

function dnpOutline(value) {
  writeStorage("dnpOutline", value);
  settings.renderDnpOutline = value;
  redrawIfInitDone();
}

function setDarkMode(value) {
  if (value) {
    topmostdiv.classList.add("dark");
  } else {
    topmostdiv.classList.remove("dark");
  }
  writeStorage("darkmode", value);
  settings.darkMode = value;
  redrawIfInitDone();
}

function setFullscreen(value) {
  if (value) {
    document.documentElement.requestFullscreen();
  } else {
    document.exitFullscreen();
  }
}

function fabricationVisible(value) {
  writeStorage("fabricationVisible", value);
  settings.renderFabrication = value;
  redrawIfInitDone();
}

function silkscreenVisible(value) {
  writeStorage("silkscreenVisible", value);
  settings.renderSilkscreen = value;
  redrawIfInitDone();
}

function setHighlightPin1(value) {
  writeStorage("highlightpin1", value);
  settings.highlightpin1 = value;
  redrawIfInitDone();
}

function getStoredCheckboxRefs(checkbox) {
  function convert(ref) {
    var intref = parseInt(ref);
    if (isNaN(intref)) {
      for (var i = 0; i < pcbdata.footprints.length; i++) {
        if (pcbdata.footprints[i].ref == ref) {
          return i;
        }
      }
      return -1;
    } else {
      return intref;
    }
  }
  if (!(checkbox in settings.checkboxStoredRefs)) {
    var val = readStorage("checkbox_" + checkbox);
    settings.checkboxStoredRefs[checkbox] = val ? val : "";
  }
  if (!settings.checkboxStoredRefs[checkbox]) {
    return new Set();
  } else {
    return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0));
  }
}

function getCheckboxState(checkbox, references) {
  var storedRefsSet = getStoredCheckboxRefs(checkbox);
  var currentRefsSet = new Set(references.map(r => r[1]));
  // Get difference of current - stored
  var difference = new Set(currentRefsSet);
  for (ref of storedRefsSet) {
    difference.delete(ref);
  }
  if (difference.size == 0) {
    // All the current refs are stored
    return "checked";
  } else if (difference.size == currentRefsSet.size) {
    // None of the current refs are stored
    return "unchecked";
  } else {
    // Some of the refs are stored
    return "indeterminate";
  }
}

function setBomCheckboxState(checkbox, element, references) {
  var state = getCheckboxState(checkbox, references);
  element.checked = (state == "checked");
  element.indeterminate = (state == "indeterminate");
}

function createCheckboxChangeHandler(checkbox, references, row) {
  return function() {
    refsSet = getStoredCheckboxRefs(checkbox);
    var darkenWhenChecked = settings.darkenWhenChecked == checkbox;
    eventArgs = {
      checkbox: checkbox,
      refs: references,
    }
    if (this.checked) {
      // checkbox ticked
      for (var ref of references) {
        refsSet.add(ref[1]);
      }
      if (darkenWhenChecked) {
        row.classList.add("checked");
      }
      eventArgs.state = 'checked';
    } else {
      // checkbox unticked
      for (var ref of references) {
        refsSet.delete(ref[1]);
      }
      if (darkenWhenChecked) {
        row.classList.remove("checked");
      }
      eventArgs.state = 'unchecked';
    }
    settings.checkboxStoredRefs[checkbox] = [...refsSet].join(",");
    writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
    updateCheckboxStats(checkbox);
    EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs);
  }
}

function clearHighlightedFootprints() {
  if (currentHighlightedRowId) {
    document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
    currentHighlightedRowId = null;
    highlightedFootprints = [];  
    highlightedOrphanPads = [];  
    highlightedNet = null;
  }
}

function createRowHighlightHandler(rowid, refs, net) {
  return function() {
    if (currentHighlightedRowId) {
      if (currentHighlightedRowId == rowid) {
        return;
      }
      document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
    }
    document.getElementById(rowid).classList.add("highlighted");
    currentHighlightedRowId = rowid;
    highlightedFootprints = refs ? refs.map(r => r[1]) : [];
    highlightedNet = net;
    drawHighlights();
    EventHandler.emitEvent(
      IBOM_EVENT_TYPES.HIGHLIGHT_EVENT,
      {
        rowid: rowid,
        refs: refs,
        net: net
      });
  }
}

function entryMatches(entry) {
  if (settings.bommode == "netlist") {
    // entry is just a net name
    return entry.toLowerCase().indexOf(filter) >= 0;
  }
  // check refs
  for (var ref of entry[3]) {
    if (ref[0].toLowerCase().indexOf(filter) >= 0) {
      return true;
    }
  }
  // check extra fields
  for (var i in config.extra_fields) {
    if (entry[4][i].toLowerCase().indexOf(filter) >= 0) {
      return true;
    }
  }
  // check value
  if (entry[1].toLowerCase().indexOf(filter) >= 0) {
    return true;
  }
  // check footprint
  if (entry[2].toLowerCase().indexOf(filter) >= 0) {
    return true;
  }
  return false;
}

function findRefInEntry(entry) {
  return entry[3].filter(r => r[0].toLowerCase() == reflookup);
}

function highlightFilter(s) {
  if (!filter) {
    return s;
  }
  var parts = s.toLowerCase().split(filter);
  if (parts.length == 1) {
    return s;
  }
  var r = "";
  var pos = 0;
  for (var i in parts) {
    if (i > 0) {
      r += '<mark class="highlight">' +
        s.substring(pos, pos + filter.length) +
        '</mark>';
      pos += filter.length;
    }
    r += s.substring(pos, pos + parts[i].length);
    pos += parts[i].length;
  }
  return r;
}

function checkboxSetUnsetAllHandler(checkboxname) {
  return function() {
    var checkboxnum = 0;
    while (checkboxnum < settings.checkboxes.length &&
      settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
      checkboxnum++;
    }
    if (checkboxnum >= settings.checkboxes.length) {
      return;
    }
    var allset = true;
    var checkbox;
    var row;
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      if (!checkbox.checked || checkbox.indeterminate) {
        allset = false;
        break;
      }
    }
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      checkbox.checked = !allset;
      checkbox.indeterminate = false;
      checkbox.onchange();
    }
  }
}

function createColumnHeader(name, cls, comparator) {
  var th = document.createElement("TH");
  th.innerHTML = name;
  th.classList.add(cls);
  th.style.cursor = "pointer";
  var span = document.createElement("SPAN");
  span.classList.add("sortmark");
  span.classList.add("none");
  th.appendChild(span);
  th.onclick = function() {
    if (currentSortColumn && this !== currentSortColumn) {
      // Currently sorted by another column
      currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
      currentSortColumn.childNodes[1].classList.add("none");
      currentSortColumn = null;
      currentSortOrder = null;
    }
    if (currentSortColumn && this === currentSortColumn) {
      // Already sorted by this column
      if (currentSortOrder == "asc") {
        // Sort by this column, descending order
        bomSortFunction = function(a, b) {
          return -comparator(a, b);
        }
        currentSortColumn.childNodes[1].classList.remove("asc");
        currentSortColumn.childNodes[1].classList.add("desc");
        currentSortOrder = "desc";
      } else {
        // Unsort
        bomSortFunction = null;
        currentSortColumn.childNodes[1].classList.remove("desc");
        currentSortColumn.childNodes[1].classList.add("none");
        currentSortColumn = null;
        currentSortOrder = null;
      }
    } else {
      // Sort by this column, ascending order
      bomSortFunction = comparator;
      currentSortColumn = this;
      currentSortColumn.childNodes[1].classList.remove("none");
      currentSortColumn.childNodes[1].classList.add("asc");
      currentSortOrder = "asc";
    }
    populateBomBody();
  }
  return th;
}

function populateBomHeader() {
  while (bomhead.firstChild) {
    bomhead.removeChild(bomhead.firstChild);
  }
  var tr = document.createElement("TR");
  var th = document.createElement("TH");
  th.classList.add("numCol");
  tr.appendChild(th);
  var checkboxCompareClosure = function(checkbox) {
    return (a, b) => {
      var stateA = getCheckboxState(checkbox, a[3]);
      var stateB = getCheckboxState(checkbox, b[3]);
      if (stateA > stateB) return -1;
      if (stateA < stateB) return 1;
      return 0;
    }
  }
  if (settings.bommode == "netlist") {
    th = createColumnHeader("Net name", "bom-netname", (a, b) => {
      if (a > b) return -1;
      if (a < b) return 1;
      return 0;
    });
    tr.appendChild(th);
  } else {
    for (var checkbox of settings.checkboxes) {
      th = createColumnHeader(
        checkbox, "bom-checkbox", checkboxCompareClosure(checkbox));
      th.onclick = fancyDblClickHandler(
        th, th.onclick.bind(th), checkboxSetUnsetAllHandler(checkbox));
      tr.appendChild(th);
    }
    tr.appendChild(createColumnHeader("References", "References", (a, b) => {
      var i = 0;
      while (i < a[3].length && i < b[3].length) {
        if (a[3][i] != b[3][i]) return a[3][i] > b[3][i] ? 1 : -1;
        i++;
      }
      return a[3].length - b[3].length;
    }));
    // Extra fields
    if (config.extra_fields.length > 0) {
      var extraFieldCompareClosure = function(fieldIndex) {
        return (a, b) => {
          var fa = a[4][fieldIndex];
          var fb = b[4][fieldIndex];
          if (fa != fb) return fa > fb ? 1 : -1;
          else return 0;
        }
      }
      for (var i in config.extra_fields) {
        tr.appendChild(createColumnHeader(
          config.extra_fields[i], "extra", extraFieldCompareClosure(i)));
      }
    }
    tr.appendChild(createColumnHeader("Value", "Value", (a, b) => {
      return valueCompare(a[5], b[5], a[1], b[1]);
    }));
    tr.appendChild(createColumnHeader("Footprint", "Footprint", (a, b) => {
      if (a[2] != b[2]) return a[2] > b[2] ? 1 : -1;
      else return 0;
    }));
    if (settings.bommode == "grouped") {
      tr.appendChild(createColumnHeader("Quantity", "Quantity", (a, b) => {
        return a[3].length - b[3].length;
      }));
    }
  }
  bomhead.appendChild(tr);
}

function populateBomBody() {
  while (bom.firstChild) {
    bom.removeChild(bom.firstChild);
  }
  highlightHandlers = [];
  footprintIndexToHandler = {};
  netsToHandler = {};
  currentHighlightedRowId = null;
  var first = true;
  if (settings.bommode == "netlist") {
    bomtable = pcbdata.nets.slice();
  } else {
    switch (settings.canvaslayout) {
      case 'F':
        bomtable = pcbdata.bom.F.slice();
        break;
      case 'FB':
        bomtable = pcbdata.bom.both.slice();
        break;
      case 'B':
        bomtable = pcbdata.bom.B.slice();
        break;
    }
    if (settings.bommode == "ungrouped") {
      // expand bom table
      expandedTable = []
      for (var bomentry of bomtable) {
        for (var ref of bomentry[3]) {
          expandedTable.push([1, bomentry[1], bomentry[2], [ref], bomentry[4], bomentry[5]]);
        }
      }
      bomtable = expandedTable;
    }
  }
  if (bomSortFunction) {
    bomtable = bomtable.sort(bomSortFunction);
  }
  for (var i in bomtable) {
    var bomentry = bomtable[i];
    if (filter && !entryMatches(bomentry)) {
      continue;
    }
    var references = null;
    var netname = null;
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    var rownum = +i + 1;
    tr.id = "bomrow" + rownum;
    td.textContent = rownum;
    tr.appendChild(td);
    if (settings.bommode == "netlist") {
      netname = bomentry;
      td = document.createElement("TD");
      td.innerHTML = highlightFilter(netname ? netname : "&lt;no net&gt;");
      tr.appendChild(td);
    } else {
      if (reflookup) {
        references = findRefInEntry(bomentry);
        if (references.length == 0) {
          continue;
        }
      } else {
        references = bomentry[3];
      }
      // Checkboxes
      for (var checkbox of settings.checkboxes) {
        if (checkbox) {
          td = document.createElement("TD");
          var input = document.createElement("input");
          input.type = "checkbox";
          input.onchange = createCheckboxChangeHandler(checkbox, references, tr);
          setBomCheckboxState(checkbox, input, references);
          if (input.checked && settings.darkenWhenChecked == checkbox) {
            tr.classList.add("checked");
          }
          td.appendChild(input);
          tr.appendChild(td);
        }
      }
      // References
      td = document.createElement("TD");
      td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
      tr.appendChild(td);
      // Extra fields
      for (var i in config.extra_fields) {
        td = document.createElement("TD");
        td.innerHTML = highlightFilter(bomentry[4][i]);
        tr.appendChild(td);
      }
      // Value
      td = document.createElement("TD");
      td.innerHTML = highlightFilter(bomentry[1]);
      tr.appendChild(td);
      // Footprint
      td = document.createElement("TD");
      td.innerHTML = highlightFilter(bomentry[2]);
      tr.appendChild(td);
      if (settings.bommode == "grouped") {
        // Quantity
        td = document.createElement("TD");
        td.textContent = bomentry[3].length;
        tr.appendChild(td);
      }
    }
    bom.appendChild(tr);
    var handler = createRowHighlightHandler(tr.id, references, netname);
    tr.onmousemove = handler;
    highlightHandlers.push({
      id: tr.id,
      handler: handler,
    });
    if (references !== null) {
      for (var refIndex of references.map(r => r[1])) {
        footprintIndexToHandler[refIndex] = handler;
      }
    }
    if (netname !== null) {
      netsToHandler[netname] = handler;
    }
    if ((filter || reflookup) && first) {
      handler();
      first = false;
    }
  }
  EventHandler.emitEvent(
    IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT,
    {
      filter: filter,
      reflookup: reflookup,
      checkboxes: settings.checkboxes,
      bommode: settings.bommode,
    });
}

function highlightPreviousRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[highlightHandlers.length - 1].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[0].id == currentHighlightedRowId) {
      highlightHandlers[highlightHandlers.length - 1].handler();
    } else {
      for (var i = 0; i < highlightHandlers.length - 1; i++) {
        if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function highlightNextRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[0].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
      highlightHandlers[0].handler();
    } else {
      for (var i = 1; i < highlightHandlers.length; i++) {
        if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function populateBomTable() {
  populateBomHeader();
  populateBomBody();
}

function footprintsClicked(footprintIndexes) {
  var lastClickedIndex = footprintIndexes.indexOf(lastClicked);
  for (var i = 1; i <= footprintIndexes.length; i++) {
    var refIndex = footprintIndexes[(lastClickedIndex + i) % footprintIndexes.length];
    if (refIndex in footprintIndexToHandler) {
      lastClicked = refIndex;
      footprintIndexToHandler[refIndex]();
      smoothScrollToRow(currentHighlightedRowId);
      break;
    }
  }
}

function netClicked(net) {
  if (net in netsToHandler) {
    netsToHandler[net]();
    smoothScrollToRow(currentHighlightedRowId);
  } else {
    clearHighlightedFootprints();
    highlightedNet = net;
    drawHighlights();
  }
}

function updateFilter(input) {
  filter = input.toLowerCase();
  populateBomTable();
}

function updateRefLookup(input) {
  reflookup = input.toLowerCase();
  populateBomTable();
}

function changeCanvasLayout(layout) {
  document.getElementById("fl-btn").classList.remove("depressed");
  document.getElementById("fb-btn").classList.remove("depressed");
  document.getElementById("bl-btn").classList.remove("depressed");
  switch (layout) {
    case 'F':
      document.getElementById("fl-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.collapse(1);
      }
      break;
    case 'B':
      document.getElementById("bl-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.collapse(0);
      }
      break;
    default:
      document.getElementById("fb-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.setSizes([50, 50]);
      }
  }
  settings.canvaslayout = layout;
  writeStorage("canvaslayout", layout);
  resizeAll();
  changeBomMode(settings.bommode);
}

function populateMetadata() {
  document.getElementById("title").innerHTML = pcbdata.metadata.title;
  document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
  document.getElementById("company").innerHTML = pcbdata.metadata.company;
  document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
  if (pcbdata.metadata.title != "") {
    document.title = pcbdata.metadata.title + " BOM";
  }
  // Calculate board stats
  var fp_f = 0, fp_b = 0, pads_f = 0, pads_b = 0, pads_th = 0;
  for (var i = 0; i < pcbdata.footprints.length; i++) {
    if (pcbdata.bom.skipped.includes(i)) continue;
    var mod = pcbdata.footprints[i];
    if (mod.layer == "F") {
      fp_f++;
    } else {
      fp_b++;
    }
    for (var pad of mod.pads) {
      if (pad.type == "th") {
        pads_th++;
      } else {
        if (pad.layers.includes("F")) {
          pads_f++;
        }
        if (pad.layers.includes("B")) {
          pads_b++;
        }
      }
    }
  }
  document.getElementById("stats-components-front").innerHTML = fp_f;
  document.getElementById("stats-components-back").innerHTML = fp_b;
  document.getElementById("stats-components-total").innerHTML = fp_f + fp_b;
  document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length;
  document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length;
  document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length;
  document.getElementById("stats-smd-pads-front").innerHTML = pads_f;
  document.getElementById("stats-smd-pads-back").innerHTML = pads_b;
  document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b;
  document.getElementById("stats-th-pads").innerHTML = pads_th;
  // Update version string
  document.getElementById("github-link").innerHTML = "InteractiveHtmlBom&nbsp;" +
    /^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
}

function changeBomLayout(layout) {
  document.getElementById("bom-btn").classList.remove("depressed");
  document.getElementById("lr-btn").classList.remove("depressed");
  document.getElementById("tb-btn").classList.remove("depressed");
  switch (layout) {
    case 'bom-only':
      document.getElementById("bom-btn").classList.add("depressed");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      document.getElementById("frontcanvas").style.display = "none";
      document.getElementById("backcanvas").style.display = "none";
      document.getElementById("bot").style.height = "";
      break;
    case 'top-bottom':
      document.getElementById("tb-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("bot").style.height = "calc(100% - 80px)";
      document.getElementById("bomdiv").classList.remove("split-horizontal");
      document.getElementById("canvasdiv").classList.remove("split-horizontal");
      document.getElementById("frontcanvas").classList.add("split-horizontal");
      document.getElementById("backcanvas").classList.add("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        direction: "vertical",
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        onDragEnd: resizeAll
      });
      break;
    case 'left-right':
      document.getElementById("lr-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("bot").style.height = "calc(100% - 80px)";
      document.getElementById("bomdiv").classList.add("split-horizontal");
      document.getElementById("canvasdiv").classList.add("split-horizontal");
      document.getElementById("frontcanvas").classList.remove("split-horizontal");
      document.getElementById("backcanvas").classList.remove("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        direction: "vertical",
        onDragEnd: resizeAll
      });
  }
  settings.bomlayout = layout;
  writeStorage("bomlayout", layout);
  changeCanvasLayout(settings.canvaslayout);
}

function changeBomMode(mode) {
  document.getElementById("bom-grouped-btn").classList.remove("depressed");
  document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
  document.getElementById("bom-netlist-btn").classList.remove("depressed");
  switch (mode) {
    case 'grouped':
      document.getElementById("bom-grouped-btn").classList.add("depressed");
      break;
    case 'ungrouped':
      document.getElementById("bom-ungrouped-btn").classList.add("depressed");
      break;
    case 'netlist':
      document.getElementById("bom-netlist-btn").classList.add("depressed");
  }
  writeStorage("bommode", mode);
  if (mode != settings.bommode) {
    settings.bommode = mode;
    bomSortFunction = null;
    currentSortColumn = null;
    currentSortOrder = null;
    clearHighlightedFootprints();
  }
  populateBomTable();
}

function focusFilterField() {
  focusInputField(document.getElementById("filter"));
}

function focusRefLookupField() {
  focusInputField(document.getElementById("reflookup"));
}

function toggleBomCheckbox(bomrowid, checkboxnum) {
  if (!bomrowid || checkboxnum > settings.checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum].childNodes[0];
  checkbox.checked = !checkbox.checked;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function checkBomCheckbox(bomrowid, checkboxname) {
  var checkboxnum = 0;
  while (checkboxnum < settings.checkboxes.length &&
    settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
    checkboxnum++;
  }
  if (!bomrowid || checkboxnum >= settings.checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0];
  checkbox.checked = true;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function setBomCheckboxes(value) {
  writeStorage("bomCheckboxes", value);
  settings.checkboxes = value.split(",").filter((e) => e);
  prepCheckboxes();
  populateBomTable();
  populateDarkenWhenCheckedOptions();
}

function setDarkenWhenChecked(value) {
  writeStorage("darkenWhenChecked", value);
  settings.darkenWhenChecked = value;
  populateBomTable();
}

function prepCheckboxes() {
  var table = document.getElementById("checkbox-stats");
  while (table.childElementCount > 1) {
    table.removeChild(table.lastChild);
  }
  if (settings.checkboxes.length) {
    table.style.display = "";
  } else {
    table.style.display = "none";
  }
  for (var checkbox of settings.checkboxes) {
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    td.innerHTML = checkbox;
    tr.appendChild(td);
    td = document.createElement("TD");
    td.id = "checkbox-stats-" + checkbox;
    var progressbar = document.createElement("div");
    progressbar.classList.add("bar");
    td.appendChild(progressbar);
    var text = document.createElement("div");
    text.classList.add("text");
    td.appendChild(text);
    tr.appendChild(td);
    table.appendChild(tr);
    updateCheckboxStats(checkbox);
  }
}

function populateDarkenWhenCheckedOptions() {
  var container = document.getElementById("darkenWhenCheckedContainer");

  if (settings.checkboxes.length == 0) {
    container.parentElement.style.display = "none";
    return;
  }

  container.innerHTML = '';
  container.parentElement.style.display = "inline-block";

  function createOption(name, displayName) {
    var id = "darkenWhenChecked-" + name;

    var div = document.createElement("div");
    div.classList.add("radio-container");

    var input = document.createElement("input");
    input.type = "radio";
    input.name = "darkenWhenChecked";
    input.value = name;
    input.id = id;
    input.onchange = () => setDarkenWhenChecked(name);
    div.appendChild(input);

    // Preserve the selected element when the checkboxes change
    if (name == settings.darkenWhenChecked) {
      input.checked = true;
    }

    var label = document.createElement("label");
    label.innerHTML = displayName;
    label.htmlFor = id;
    div.appendChild(label);

    container.appendChild(div);
  }
  createOption("", "None");
  for (var checkbox of settings.checkboxes) {
    createOption(checkbox, checkbox);
  }
}

function updateCheckboxStats(checkbox) {
  var checked = getStoredCheckboxRefs(checkbox).size;
  var total = pcbdata.footprints.length - pcbdata.bom.skipped.length;
  var percent = checked * 100.0 / total;
  var td = document.getElementById("checkbox-stats-" + checkbox);
  td.firstChild.style.width = percent + "%";
  td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)";
}

document.onkeydown = function(e) {
  switch (e.key) {
    case "n":
      if (document.activeElement.type == "text") {
        return;
      }
      if (currentHighlightedRowId !== null) {
        checkBomCheckbox(currentHighlightedRowId, "placed");
        highlightNextRow();
        e.preventDefault();
      }
      break;
    case "ArrowUp":
      highlightPreviousRow();
      e.preventDefault();
      break;
    case "ArrowDown":
      highlightNextRow();
      e.preventDefault();
      break;
    default:
      break;
  }
  if (e.altKey) {
    switch (e.key) {
      case "f":
        focusFilterField();
        e.preventDefault();
        break;
      case "r":
        focusRefLookupField();
        e.preventDefault();
        break;
      case "z":
        changeBomLayout("bom-only");
        e.preventDefault();
        break;
      case "x":
        changeBomLayout("left-right");
        e.preventDefault();
        break;
      case "c":
        changeBomLayout("top-bottom");
        e.preventDefault();
        break;
      case "v":
        changeCanvasLayout("F");
        e.preventDefault();
        break;
      case "b":
        changeCanvasLayout("FB");
        e.preventDefault();
        break;
      case "n":
        changeCanvasLayout("B");
        e.preventDefault();
        break;
      default:
        break;
    }
    if (e.key >= '1' && e.key <= '9') {
      toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
    }
  }
}

function hideNetlistButton() {
  document.getElementById("bom-ungrouped-btn").classList.remove("middle-button");
  document.getElementById("bom-ungrouped-btn").classList.add("right-most-button");
  document.getElementById("bom-netlist-btn").style.display = "none";
}

window.onload = function(e) {
  initUtils();
  initRender();
  initStorage();
  initDefaults();
  cleanGutters();
  populateMetadata();
  dbgdiv = document.getElementById("dbg");
  bom = document.getElementById("bombody");
  bomhead = document.getElementById("bomhead");
  filter = "";
  reflookup = "";
  if (!("nets" in pcbdata)) {
    hideNetlistButton();
  }
  initDone = true;
  prepCheckboxes();
  // Triggers render
  changeBomLayout(settings.bomlayout);

  // Users may leave fullscreen without touching the checkbox. Uncheck.
  document.addEventListener('fullscreenchange', () => {
    if (!document.fullscreenElement)
      document.getElementById('fullscreenCheckbox').checked = false;
  });
}

window.onresize = resizeAll;
window.matchMedia("print").addListener(resizeAll);

///////////////////////////////////////////////

///////////////////////////////////////////////
 
///////////////////////////////////////////////
  </script>
</head>

<body>
<!-- USERHEADER -->
<div id="topmostdiv" class="topmostdiv">
  <div id="top">
    <div style="float: right; height: 100%;">
      <div class="hideonprint menu" style="float: right; top: 8px;">
        <button class="menubtn"></button>
        <div class="menu-content">
          <label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
            <input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
            Dark mode
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
            <input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
            Full Screen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
            Fab layer
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
            Silkscreen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
            References
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
            Values
          </label>
          <div id="tracksAndZonesCheckboxes">
            <label class="menu-label" style="width: calc(50% - 18px)">
              <input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
              Tracks
            </label><!-- This comment eats space! All of it!
            --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
              <input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
              Zones
            </label>
          </div>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
            Pads
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
            DNP outlined
          </label>
          <label class="menu-label">
            <input id="highlightpin1Checkbox" type="checkbox" onchange="setHighlightPin1(this.checked)">
            Highlight first pin
          </label>
          <label class="menu-label">
            <input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
            Continuous redraw on drag
          </label>
          <label class="menu-label">
            <input id="crosshairCheckbox" type="checkbox" checked onchange="setShowCrosshair(this.checked)">
            Show Crosshair
          </label>
          <label class="menu-label">
            <span>Board rotation</span>
            <span style="float: right"><span id="rotationDegree">0</span>&#176;</span>
            <input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Bom checkboxes</div>
            <input id="bomCheckboxes" class="menu-textbox" type=text
                   oninput="setBomCheckboxes(this.value)">
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Darken when checked</div>
            <div id="darkenWhenCheckedContainer"></div>
          </label>
          <label class="menu-label">
            <span class="shameless-plug">
              <span>Created using</span>
              <a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
            </span>
          </label>
        </div>
      </div>
      <div class="button-container hideonprint"
           style="float: right; position: relative; top: 8px">
        <button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
                title="Front only">F
        </button>
        <button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
                title="Front and Back">FB
        </button>
        <button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
                title="Back only">B
        </button>
      </div>
      <div class="button-container hideonprint"
           style="float: right; position: relative; top: 8px">
        <button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
                title="BOM only"></button>
        <button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
                title="BOM left, drawings right"></button>
        <button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
                title="BOM top, drawings bot"></button>
      </div>
      <div class="button-container hideonprint"
           style="float: right; position: relative; top: 8px">
        <button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
                title="Grouped BOM"></button>
        <button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
                title="Ungrouped BOM"></button>
        <button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
                title="Netlist"></button>
      </div>
      <div class="hideonprint menu" style="float: right; top: 8px;">
        <button class="statsbtn"></button>
        <div class="menu-content">
          <table class="stats">
            <tbody>
              <tr>
                <td width="40%">Board stats</td>
                <td>Front</td>
                <td>Back</td>
                <td>Total</td>
              </tr>
              <tr>
                <td>Components</td>
                <td id="stats-components-front">~</td>
                <td id="stats-components-back">~</td>
                <td id="stats-components-total">~</td>
              </tr>
              <tr>
                <td>Groups</td>
                <td id="stats-groups-front">~</td>
                <td id="stats-groups-back">~</td>
                <td id="stats-groups-total">~</td>
              </tr>
              <tr>
                <td>SMD pads</td>
                <td id="stats-smd-pads-front">~</td>
                <td id="stats-smd-pads-back">~</td>
                <td id="stats-smd-pads-total">~</td>
              </tr>
              <tr>
                <td>TH pads</td>
                <td colspan=3 id="stats-th-pads">~</td>
              </tr>
            </tbody>
          </table>
          <table class="stats">
            <col width="40%"/><col />
            <tbody id="checkbox-stats">
              <tr>
                <td colspan=2 style="border-top: 0">Checkboxes</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="hideonprint menu" style="float: right; top: 8px;">
        <button class="iobtn"></button>
        <div class="menu-content">
          <div class="menu-label menu-label-top">
            <div style="margin-left: 5px;">Save board image</div>
            <div class="flexbox">
              <input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
              <span>X</span>
              <input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
            </div>
            <label>
              <input id="render-save-transparent" type="checkbox">
              Transparent background
            </label>
            <div class="flexbox">
              <button class="savebtn" onclick="saveImage('F')">Front</button>
              <button class="savebtn" onclick="saveImage('B')">Back</button>
            </div>
          </div>
          <div class="menu-label">
            <span style="margin-left: 5px;">Config and checkbox state</span>
            <div class="flexbox">
              <button class="savebtn" onclick="saveSettings()">Export</button>
              <button class="savebtn" onclick="loadSettings()">Import</button>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div id="fileinfodiv" style="overflow: auto;">
      <table class="fileinfo">
        <tbody>
          <tr>
            <td id="title" class="title" style="width: 70%">
              Title
            </td>
            <td id="revision" class="title" style="width: 30%">
              Revision
            </td>
          </tr>
          <tr>
            <td id="company">
              Company
            </td>
            <td id="filedate">
              Date
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
  <div id="bot" class="split" style="height: calc(100% - 80px)">
    <div id="bomdiv" class="split split-horizontal">
      <div style="width: 100%">
        <input id="reflookup" class="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
               oninput="updateRefLookup(this.value)">
        <input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
               oninput="updateFilter(this.value)">
        <div class="button-container hideonprint" style="float: left; margin: 0;">
          <button id="copy" title="Copy bom table to clipboard"
               onclick="copyToClipboard()"></button>
        </div>
      </div>
      <div id="dbg"></div>
      <table class="bom">
        <thead id="bomhead">
        </thead>
        <tbody id="bombody">
        </tbody>
      </table>
    </div>
    <div id="canvasdiv" class="split split-horizontal">
      <div id="frontcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="F_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
      <div id="backcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="B_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
    </div>
  </div>
</div>
<!-- USERFOOTER -->
</body>

</html>
